我正在使用ng-repeat
来显示view
中的项目列表。
在我的controller
中,数组正在更新但视图不会更新。
我不知道我在哪里做错了。
有人可以帮我解决吗?
这是我的观点部分:
<ul>
<li data-ng-repeat="item in closedBoards track by $index">
<a href="#" data-ng-if="(item.closeBoard)"><span class="board-span" tooltip-html-unsafe="<strong>Board Name: {{item.name}}<br />Created by: {{item.createdBy.name}}<br />Created At: {{item.createdAt}}</strong> " tooltip-placement="top"><strong>{{item.name}}</strong><span><img class="reopen-board" src="../images/reopen.png" open-board data-ng-click="show(item._id)"></span></span></a>
</li>
</ul>
这是我的控制器代码
$scope.reOpenBoard = function() {
BoardFactory.openBoard(boardId).then(function(data) {
$scope.closedBoards.some(function(closed,index){
if(closed._id==boardId){
$scope.closedBoards.splice(index,1);
return true;
}else{
return false;
}
});
}, function(err) {
console.log(err);
})
}
谢谢。
答案 0 :(得分:0)
如果$scope.closedBoards
是一个jQuery插件容器而.some
是一个插件函数,那么你应该在你的AngularCode周围使用$ scope。$ apply wrapper:
$scope.reOpenBoard = function() {
BoardFactory.openBoard(boardId).then(function(data) {
$scope.closedBoards.some(function(closed,index){
if(closed._id==boardId){
$scope.$apply(function(){
$scope.closedBoards.splice(index,1);
});
return true;
}else{
return false;
}
});
}, function(err) {
console.log(err);
})
}
但我认为你的代码中有错误。 $ scope.closedBoards - 必须是一个数据数组,它不能包含.some
等方法