我正在使用ng-options来迭代angularjs中的一些数据,当选择值时,我想要一个选定的Object,为此我创建了指令..
return {
require: 'ngModel',
restrict : 'A',
link: function(scope, element, attrs, ctrl) {
$(element).combobox({
source: scope[attrs.reportitems],
select: function(event, ui) {
$timeout(function() {
if(attrs.reportitems=="zoneList"){
if(ui.item.attributes.value.value != "0") {
scope["update"](ui.item.attributes.value.value);
}
}
}, 0);
}
});
},
}
这将调用控制器中的update方法,它将传递数据数组的索引位置,但我希望对象本身而不是索引。或以某种方式在UI中触发ng-change方法。因此我可以在控制器中的更新方法中拥有一个Object。请检查此Plunker的整个代码.. Link
有人可以帮忙吗?
答案 0 :(得分:1)
据我所知,当选择一个项目时,整个对象将被传递到数组内部。您只需要res[0]
即可访问该对象。从那里,您可以使用id,tableName和toolTip属性。或者,您可以指定ng-change=update(selected[0])
来获取对象。
我很好奇为什么要定义$scope.selected = []
然后分配$scope.selected = res