我有一个离子列表
<ion-list>
<ion-item ng-repeat="item in items">
Hello, {{item.name}}!
</ion-item>
</ion-list>
然后,在控制器中我有一个事件:
$scope.items = someData();
itemsRef.on('event', function (response) {
console.log(response); // this is an object containing he "name" property
});
我想将response
附加为ion-item
,而不插入html,但会以某种方式将响应添加到项目中
编辑:
我尝试过:$scope.items.push(response);
但奇怪的是我得到了Uncaught TypeError: undefined is not a function
编辑:它看起来不只是$scope.items.push(response);
,而是$scope.items[next_key_here] = response;
请参阅jsfiddle
答案 0 :(得分:2)
如果itemRef是Angular服务,您只需将对象添加到items数组中:
$scope.items.push( response );
如果itemRef使用一些非Angular异步服务来获取其响应,则需要告诉Angular事情已更新:
$scope.$apply( function() {
$scope.items.push( response );
});
如果您遇到$ scope的问题,使用带有点的$ scope变量总是一个好主意,例如使用$ scope.data.items而不是$ scope.items。
有关原因的详尽讨论,请参阅http://jimhoskins.com/2012/12/14/nested-scopes-in-angularjs.html。
答案 1 :(得分:1)
我尝试过:
$scope.items.push(response);
但奇怪的是我得到了Uncaught TypeError: undefined is not a function
这是因为$ scope.items在您尚未填充值之前访问它时不是Array
对象。尝试做这样的事情,这应该有效:
if ($scope.items && $scope.items instanceof Array) {
$scope.items.push(response);
}