Angular - 获取重复对象
我需要从ng-click中获取当前对象,因为我使用的是orderBy,因此它给了我相对错误的索引到范围对象。理想情况下,我希望能够点击对象(缩略图)并让$ scope.activePerson获得所有对象值。Angular - 获取重复对象
[
{
'name': 'john'
},
{
'name': 'toby'
},
{
'name': 'sarah'
}
]
这是非常简单,我真正的对象有超过30 KV对和子对象:
我的数据结构如下。我重复的有10个对象(分批4个)。
我现在的HTML是:
.item.fourth(ng-repeat="person in people | orderBy:'-name' " ng-show="$index <= 3" nid="{{person.guid}}"
感谢
你可以使用排序依据,并从纳克重复复制当前对象,see this plunkr.相关代码:
控制器
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.stuff = [
{
'name': 'john'
},
{
'name': 'toby'
},
{
'name': 'sarah'
}
];
$scope.setActivePerson = function (obj) {
$scope.activePerson = obj;
};
});
查看
<body ng-controller="MainCtrl">
<div ng-repeat="thing in stuff | orderBy: 'name'">
<input type="radio" ng-click="setActivePerson(thing)" />
{{ thing.name }}
</div>
<br />
<div ng-model="activePerson">Active: {{ activePerson.name }}</div>
</body>
这不行,尝试选择莎拉,托比会是活跃的人。 – ryeballar
你是对的,检查更新的plunkr:http://plnkr.co/edit/UPwzeJ7iXcP1IRUB09BF 你只需要将该人复制到activePerson。 –
这只是person
在ng-repeat="person in people"
;
我不知道你使用,你绝对没有HTML有什么样的降价,但你想要的东西,如:
<div
ng-repeat="person in people | orderBy:'-name' "
ng-show="$index <= 3"
nid="{{person.guid}}"
ng-click="activePerson = person">
</div>
注意,NG-重复创建一个子范围,所以你需要在父范围内设置activePerson
。
这是玉。谢谢,这也是一个解决方案。 –
不用担心关于索引....只是将整个对象传递给ng-click函数。也看看'limitTo:length:start'过滤器 – charlietfl