Javascript 使用controllerAs将值分配给ng中的子控制器重复。
我在读这篇文章是关于使用controllerAs语法和尽可能避免使用$scope的 我有一个UsersController,它有一个用户数组。然后,我将ng repeat指令与嵌套的UserController一起使用 我的问题是,在不使用$scope的情况下,我不知道应该如何访问用户值或将用户值分配给我的UserController。有什么建议吗?这是 以下是HTML:Javascript 使用controllerAs将值分配给ng中的子控制器重复。,javascript,angularjs,Javascript,Angularjs,我在读这篇文章是关于使用controllerAs语法和尽可能避免使用$scope的 我有一个UsersController,它有一个用户数组。然后,我将ng repeat指令与嵌套的UserController一起使用 我的问题是,在不使用$scope的情况下,我不知道应该如何访问用户值或将用户值分配给我的UserController。有什么建议吗?这是 以下是HTML: <div ng-controller="UsersController as usersCtrl"> &l
<div ng-controller="UsersController as usersCtrl">
<div ng-repeat="user in usersCtrl.users">
<div ng-controller="UserController as userCtrl">
<ul>
<!-- How can I access user from UserController without using $scope? -->
<li>{{user.index}}</li>
<li ng-repeat="friend in user.friends">{{friend.name}}</li>
</ul>
</div>
</div>
</div>
这取决于您希望在UserController中对用户执行什么操作。例如,如果你想调用一个函数,你总是可以传递给用户:vm.doSomethinguser{//use the user}互联网上有很多错误的、陈旧的和不好的实践代码示例。@davintroon,是的,user是一个$resource,所以我的想法是做一些类似user.addFriendName;,在示例部分中,它提到了使用controllerAs语法的优点。我并不是说一种方法比另一种好,我只是在尝试两种方法。有趣的是,这两种方法实际上是一样的!在函数作用域中引用它与在控制器中调用$scope完全相同。我真的建议您遵循最具可读性的方式,ControllerAs提供的唯一优势是可以在不破坏代码的情况下完全缩小代码。
/* UserController */
function UserController($scope) {
var vm = this;
/* How to access/assign 'user' without using $scope?
Is there a better way than the following?
vm.user = $scope.user
*/
}
/* UsersController */
function UsersController(dataService) {
var vm = this;
vm.users = dataService;
}