gpt4 book ai didi

添加/删除元素时,angularjs ng-repeat列表未更新

转载 作者:行者123 更新时间:2023-12-04 14:29:54 24 4
gpt4 key购买 nike

有一个从 rest api 检索到的用户列表。这是模板

<div ng:controller="UserController">
<a ng-click="createUser()">Create User</a>

<div ng-view>
<ul>
<li ng-repeat="user in users">
{[{user.first_name}]} {[{user.last_name}]}
</li>
</ul>
</div>
</div>

JS:
function UserController($scope, User, Group){
$scope.users = User.query();

$scope.createUser = function(){

//$scope.users = null;
//$scope.users.pop();
//$scope.users.push(new User({id:'5'}));

console.log($scope.users);
}
}

服务: http://dpaste.com/1065440/

正确检索并列出了所有用户。问题是我根本无法操纵呈现的列表。无论我做什么推送、弹出或设置为空。该列表不会在模板中更改。但是,最后一条日志语句显示了更改,例如打印当 users 数组设置为 null 时为 NULL。

任何想法问题出在哪里?

最佳答案

你插入数组的对象应该是 User 的一个实例。

function UserController($scope, User){

$scope.users = User.query();

$scope.createUser = function(){
$scope.users.push(new User({first_name:'Bob', last_name: 'Schmitt'}));
}
}

所以,使用 new User({})
从我们的谈话来看,问题似乎出在路由上。将相同的外部 Controller 分配给正在加载的部分 ng-view .删除 ng:controller="UserController"并移动 createUser部分按钮可以解决问题,但如果确实需要调用 createUser ng-view 外部的方法,那么与之相关的所有数据都需要在外部 Controller 中。因此,您可以保持外部 Controller 不变,并更改路线以使用空的占位符 Controller 。

关于添加/删除元素时,angularjs ng-repeat列表未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16114035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com