Anu*_*eva 9 angularjs angularjs-directive
我们可以将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>
Run Code Online (Sandbox Code Playgroud)
这是代码:
angular.module("myApp", [])
.controller("UserController", ["$scope", function($scope) {
$scope.users = [
{name : "Anup Vasudeva", email : "anup.vasudeva2009@gmail.com", desc : "Description about Anup Vasudeva"},
{name : "Amit Vasudeva", email : "amit.vasudeva2009@gmail.com", desc : "Description about Amit Vasudeva"},
{name : "Vijay Kumar", email : "vijay.kumar@gmail.com", desc : "Description about Vijay Kumar"}
];
$scope.selected = false;
$scope.toggleSelectedUser = function() {
$scope.selected = !$scope.selected;
};
$scope.isSelectedUser = function() {
return $scope.selected;
};
}]);
Run Code Online (Sandbox Code Playgroud)
我认为绑定ng-controller和ng-repeat相同的DOM元素是有意义的.ng-repeat创建的范围可由控制器管理.我想要的是变量selected对每个范围都应该是唯一的.
Cha*_*ani 11
您应该将控制器分解为UserListController和UserController.用户列表应该是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">
Run Code Online (Sandbox Code Playgroud)
所以用户控制器就变成了
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;
};
}]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15818 次 |
| 最近记录: |