使用Angularjs中的Directive触发更改

时间:2015-10-08 08:11:01

标签: javascript angularjs

我正在使用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

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

据我所知,当选择一个项目时,整个对象将被传递到数组内部。您只需要res[0]即可访问该对象。从那里,您可以使用id,tableName和toolTip属性。或者,您可以指定ng-change=update(selected[0])来获取对象。

我很好奇为什么要定义$scope.selected = []然后分配$scope.selected = res