我有要求我需要在一个地方进行ng-repeat工作。我将定义id应该在哪里工作。我想从控制器
执行此操作 $(#1).(ng-repeat work)
类似这样的事情
例如:
<table id="1">
<tr ng-repeat="item in items">
<td></td>
</table>
<table id="2">
<tr ng-repeat="item in items">
<td></td>
</table>
小提琴链接: - http://jsfiddle.net/7MhLd/580/
如何实现这个
由于
答案 0 :(得分:1)
您有三种选择:
(1)在代码中使用ng-show
。
<table id="1">
<tr ng-repeat="item in items" ng-show="/* code to check parent id */">
<td></td> </tr>
</table>
<table id="2">
<tr ng-repeat="item in items" ng-show="/* code to check parent id */">
<td></td> </tr>
</table>
这可能是一个不太合适的人。
(2)仅在需要时使用ng-repeat。如果这是由php代码生成的,请检查$i == 1
是否为ng-repeat
,如果没有,则不回显ng-repeat。
(3)使用条件{{1}},如this answer。
所示 编辑:对于奇怪的清单,对不起,代码不会显示是否以通常的方式完成。答案 1 :(得分:0)
据我所知,你必须为应该在#1中显示的项目定义新模型,并为要显示的其他项目定义#2。填充第一个模型,数据显示在#1(使用Js),第二个模型相同。然后绑定另一个模型:
<table id="1">
<tr ng-repeat="item in items1">
<td>{{item.id}}</td>
</table>
<table id="2">
<tr ng-repeat="item in items2">
<td>{{item.id}}</td>
</table>
答案 2 :(得分:0)
我认为您的意思是根据要传递的ID显示/隐藏ng-repeat内容。
我有updated fiddle来处理这个问题。
HTML code:
<div ng-controller="MyCtrl">
<table id="1" border=1>
<tr ng-repeat="line in lines" ng-show="line.id == 1">
<td>{{line.text}}</td>
</tr>
</table>
<table id="2" border=1 style="margin-top:10px">
<tr ng-repeat="line in lines" ng-show="line.id == 2">
<td>{{line.text}}</td>
</tr>
</table>
</div>
JS代码:
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.lines = [{
id: 1,
text: 'res1'
}, {
id: 1,
text: 'res2'
}];
}
UPDATE(没有id属性的json):
HTML代码:
<div ng-controller="MyCtrl">
<table id="1" border=1>
<tr ng-repeat="line in lines" ng-show="id == 1">
<td>{{line.text}}</td>
</tr>
</table>
<table id="2" border=1 style="margin-top:10px">
<tr ng-repeat="line in lines" ng-show="id == 2">
<td>{{line.text}}</td>
</tr>
</table>
</div>
JS代码:
var myApp = angular.module('myApp', []);
//myApp.directive('myDirective', function() {});
//myApp.factory('myService', function() {});
function MyCtrl($scope) {
$scope.id = 1;
$scope.lines = [{
text: 'res1'
}, {
text: 'res2'
}];
}