同一DOM元素上的ng-repeat和ng-controller

阿努普·瓦苏德娃(Anup Vasudeva)

我们可以将ng-controller和ng-repeat附加到同一DOM元素吗?小提琴

这是HTML:

<table>
    <tbody ng-controller="UserController" ng-repeat="user in users" ng-click="toggleSelectedUser()" ng-switch on="isSelectedUser()">
        <tr>
            <td>{{user.name}}</td>
            <td>{{user.email}}</td>
        </tr>
        <tr ng-switch-when="true">
            <td colspan="2">
                {{user.desc}}
            </td>
        </tr>
    </tbody>
</table>

这是代码:

angular.module("myApp", [])     
    .controller("UserController", ["$scope", function($scope) {
        $scope.users = [
            {name : "Anup Vasudeva", email : "[email protected]", desc : "Description about Anup Vasudeva"},
            {name : "Amit Vasudeva", email : "[email protected]", desc : "Description about Amit Vasudeva"},
            {name : "Vijay Kumar", email : "[email protected]", desc : "Description about Vijay Kumar"}
        ];
        $scope.selected = false;

        $scope.toggleSelectedUser = function() {
            $scope.selected = !$scope.selected;
        };

        $scope.isSelectedUser = function() {
            return $scope.selected;
        };
    }]);

我认为绑定ng-controller绑定ng-repeat到相同的DOM元素是有意义的ng-repeat创建的作用域可以由控制器管理。我想要的是变量selected对于每个范围应该是唯一的。

尚德马尼

您应该将控制器分为UserListControllerUserController用户列表应该是UserListController的一部分,并且每个项目都可以通过UserController

就像是

<table ng-controller='UserListController'>
        <tbody ng-controller="UserController" ng-repeat="user in users" ng-click="toggleSelectedUser()" ng-switch on="isSelectedUser()" ng-init="user=user">

因此,用户控制器变为

angular.module("myApp", [])     
    .controller("UserController", ["$scope", function($scope) {
        $scope.selected = false;

        $scope.toggleSelectedUser = function() {
            $scope.user.selected = !$scope.selected;
        };

        $scope.isSelectedUser = function() {
            return $scope.user.selected;
        };
    }]);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在同一元素上使用“ controller as x”的多个ng-controller指令

来自分类Dev

在同一个DOM元素上使用ng-show和ng-hide是否正确?

来自分类Dev

ng-controller和ui-view在同一元素上不起作用

来自分类Dev

ng-controller和ui-view在同一元素上不起作用

来自分类Dev

Angularjs ng-repeat / ng-controller遇到麻烦

来自分类Dev

在同一元素中使用ng-repeat-start和ng-repeat-end?

来自分类Dev

ng-repeat和jsTree

来自分类Dev

ng-click和ng-href在同一元素上

来自分类Dev

ng-repeat和ng-switch不适用于同一元素

来自分类Dev

在AngularJS中的ng-repeat中访问Controller变量

来自分类Dev

在浏览器上按返回按钮后,包含ng-include和ng-controller的div元素消失

来自分类Dev

ng-controller和controller属性之间的区别

来自分类Dev

BEM元素和同一DOM节点上的块

来自分类Dev

使用AngularJS处理同一元素上的ng-click和ng-dblclick

来自分类Dev

带有ng-repeat的ng-controller,魔术在哪里?

来自分类Dev

结合ng repeat和Django模板语言

来自分类Dev

ng-repeat和对象/数组结构

来自分类Dev

ng-repeat问题和html表

来自分类Dev

ng-repeat,for-loop和push

来自分类Dev

与ng-repeat和float重叠:向左

来自分类Dev

angularjs $编译服务和ng-repeat

来自分类Dev

AngularJS,嵌套JSON和ng-repeat

来自分类Dev

指令和$ validators的ng-repeat

来自分类Dev

OnsenUI列表和ng-repeat问题

来自分类Dev

ng-repeat嵌套和KeyValuePair列表

来自分类Dev

与ng-repeat和float重叠:向左

来自分类Dev

与angularjs和ng-repeat的动态链接

来自分类Dev

AngularJS中的条件ng-include和ng-controller一起

来自分类Dev

使用ng-repeat和ng-if进行代码优化