刷新$scope更改
Refresh $scope changes
通过路由交换出ng视图。下面是一些路由和控制器代码
var containers = [];
angular.module('AContainer',['ngRoute']).config(
function ($routeProvider){
$routeProvider
.when('/', {
controller: containerListCtrl,
templateUrl: '/closeAndUplift_containerList.html'
});
}
);
function containerListCtrl($scope, $location){
$scope.containers = containers;
}
这里是div
<div id='containersDiv' ng-app='AContainer'>
<div ng-view></div>
</div>
在这个视图中(closeAndUplift_containerList.html)已经加载,它通过ng-repeat显示一个对象数组
<div>
<table>
<thead>
<th>Pallet id</th>
</thead>
<tr ng-repeat='container in containers'>
<td><a href='#/edit/{{container.index}}'>{{container.id}}</a></td>
</tr>
</table>
当jquery ajax回调导致更改时发生问题。xhr调用包含在一个单独的库中,并传入一个回调函数。回调函数应该清除容器列表。回调函数执行以下命令:
var activeScope = $('#containersDiv').scope();
activeScope.$apply( function(){
activeScope.containers = [];
});
但是什么也没发生。
编辑:按照Rishul的建议,我重新安排了代码,以利用$http使其工作。问题是,虽然这是一种变通方法,但它并没有真正回答为什么我使用的方法不起作用的问题。有人能评论一下他的答案是否可以作为解决问题的答案吗?
使用一个$http服务来进行ajax调用,因为这个内置的angular js库在获得响应时会运行一个摘要循环,并且当你修改作用域变量时,视图也会发生变化。
在你的情况下,jquery回调将不会触发$digest周期,因此视图不会得到更新!请确认是否有效
相关文章:
- 正在获取Angular以检测$scope中的更改
- setInterval函数不会更改视图中的$scope
- Angular:如何在状态更改时调用scope方法
- $scope变量发生更改时未触发Angular$watch
- 将Scope变量作为指针发送,并在控制器外部对其进行更改
- 函数中的$scope变量值没有更改
- ng单击触发函数,但无法更改$scope.var
- 角度:当输入更改时更新视图 + .this/$scope
- AngularJS中存在与$scope变量相关的问题.UI中的值未更改
- Angular:$scope有效,但“;控制器为“;不触发ng更改事件
- 为什么onChange回调中对$scope.data的更改不会重新绘制chart.js
- Angular js,$scope的更改没有反映在视图中
- 强制DOM在$scope模型对工厂模型的引用发生更改时进行渲染
- 在 AngularJS 中更改$scope变量中文本的字体颜色
- 根据屏幕大小更改$scope变量
- $watch-方法不会更改scope变量
- 如何在ng-repeat中更改$scope值
- AngularJs的ng-repeat没有在更改$scope变量后更新
- 角度 - 如何通过$scope中的函数更改$scope属性值
- ng-单击值更改 + $scope.watch 绑定无法正常工作