推送到数组不会通过ng repeat指令更新视图列表
Pushing to an array does not update view list via ng-repeat directive
我在index.html
中实现了一个简单的ng-repeat
指令
<div ng-repeat="item in itemCollection">
{{item.name}}
{{item.date}}
...
</div>
我正在尝试使用push()
方法在数组中添加一个新项。
$scope.itemCollection = [];
$scope.someFunction = function(){
var o = {};
//do stuff here.
o.name = name-fromDoingStuff;
o.date = date-fromDoingStuff;
...
$scope.itemCollection.push(o);
}
itemCollection
得到更新。我使用alert()
确认了这一点
alert($scope.itemCollection[0].name);
alert($scope.itemCollection[0].date);
...
alert($scope.itemCollection[1].name);
alert($scope.itemCollection[1].date);
...
但视图中显示的列表不会更新。我已经尝试过使用$scope.$apply
,但它仍然是一样的。我可能做错了什么?
已编辑添加了其他信息:
div
在ng-controller
内
<body ng-app = "grabbingSystem" ng-controller = "mainCtrl">
<div class = "center-wrap">
<ui-view></ui-view> //I'm using angular-ui-router
</div>
</body>
div
不是嵌套ng-repeat
的一部分
已编辑添加附加信息:
配置中的所有页面都分配给同一个控制器。
.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider){
$stateProvider
.state('list', {
url: '/list',
templateUrl: 'tickets/_ticketsList.html',
controller: 'mainCtrl',
resolve: {
postPromise: ['tickets', function(tickets){
return tickets.DBgetAll();
}]
}
})
.state('grab', {
url: '/grab',
templateUrl: 'tickets/_ticketsGrab.html',
controller: 'mainCtrl'
})
$urlRouterProvider.otherwise('list');
}
])
我试过你的代码,它运行得很好,只是做了一些小改动。
http://jsbin.com/qirafa/1/edit?html,js,输出
HTML
<body ng-app="myApp" ng-controller="MainController">
<div ng-repeat="item in itemCollection">
{{item.name}}
{{item.date}}
</div>
</body>
Javscript
var myApp = angular.module('myApp', []);
myApp.controller("MainController", function($scope) {
$scope.itemCollection = [];
$scope.someFunction = function(){
var o = {};
o.name = "a";
o.date = "b";
$scope.itemCollection.push(o);
};
$scope.someFunction();
});
检查你的ng重复应该在正确的控制器内。
并且应该调用将项添加到数组的函数。
相关文章:
- ng init中的表达式无法使用ng repeat
- Angular ng repeat order将多个字段作为一个字段
- 访问ng repeat中的第一个项目
- Angular js+ng repeat+字母数字索引不起作用
- 如何正确应用Angularjs ng repeat
- AngularJS Navigation (li ng-repeat, create header li), DOM
- 如何使用ng repeat中的选定输入更新我的对象
- 无法使用ng repeat检索动态创建的JSON对象的属性
- 使用 ng-repeat访问 ng 表单元素/值
- 在Angular JS中,预先填充ng中的下拉值repeat
- Toggle Switch在包含ng model和ng repeat之后不进行切换
- 想要将ng个repeat对象传递给自定义筛选函数
- 如何从 ng-repeat(ng-repeat)中的指令访问控制器范围
- ng-repeat / ng-bind 不会显示我的数据
- 具有 ng-repeat(ng-repeat)中动态字段名称的自定义指令
- 如何在使用 ng-repeat(ng-repeat)时获取元素的正确高度和偏移值
- AngularJS ng-repeat ng-show array in object
- 将动态值绑定到 ng-repeat(ng-repeat)内的进度条
- 通过ng-repeat, ng-model和复选框获取数组中的位置
- AngularJS ng-repeat ng-click