Javascript 使用controllerAs将值分配给ng中的子控制器重复。

Javascript 使用controllerAs将值分配给ng中的子控制器重复。,javascript,angularjs,Javascript,Angularjs,我在读这篇文章是关于使用controllerAs语法和尽可能避免使用$scope的 我有一个UsersController,它有一个用户数组。然后,我将ng repeat指令与嵌套的UserController一起使用 我的问题是,在不使用$scope的情况下,我不知道应该如何访问用户值或将用户值分配给我的UserController。有什么建议吗?这是 以下是HTML: <div ng-controller="UsersController as usersCtrl"> &l

我在读这篇文章是关于使用controllerAs语法和尽可能避免使用$scope的

我有一个UsersController,它有一个用户数组。然后,我将ng repeat指令与嵌套的UserController一起使用

我的问题是,在不使用$scope的情况下,我不知道应该如何访问用户值或将用户值分配给我的UserController。有什么建议吗?这是

以下是HTML:

<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;

}