Hex*_*yse 5 scope controller angularjs angular-ui-router
我有一个AngularJS控制器,它从服务加载数据(执行异步$http请求).
在子控制器中,我需要等待加载此数据,然后才能执行另一个$http请求以加载更详细的信息.
我尝试在子控制器中执行此操作:
$scope.$parent.watch('dataLoaded', function(dataLoaded) {
if (dataLoaded) {
// call the service doing the subsequent $http request with data from parent controller
}
};
Run Code Online (Sandbox Code Playgroud)
当我这样做时,它在子控制器中工作,但它似乎是'dataLoaded'变量(一旦在父控制器中加载数据,从false变为true)从未在父控制器中将其值实际更改为true.
我究竟做错了什么 ?我应该采用完全不同的方法吗?
这里的重点是 - 我们需要一个被监视的引用(dot名称中的 a)。例如Model: {}
所以,在父状态/视图中,我们会声明它
$scope.Model = {
dataLoaded: false,
};
Run Code Online (Sandbox Code Playgroud)
并且子视图可以$watch更改模型属性(但不能在父视图上,仅在当前范围内)
$scope.$watch('Model.dataLoaded', function(dataLoaded) {
if (dataLoaded) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
在此处查看更多详细信息:
| 归档时间: |
|
| 查看次数: |
5461 次 |
| 最近记录: |