我的模块中有两个指令。第一个来自https://github.com/banafederico/angularjs-country-select。我用它作为第二个模型。这两个指令表示输入字段,但第二个指令不存储值。链接功能未更新ng-model值。
link: function(scope, elem, attrs) {
if (!!attrs.ngModel) {
var assignDivision = $parse(attrs.ngModel).assign;
elem.bind('change', function(e) {
assignDivision(elem.val());
});
scope.$watch(attrs.ngModel, function(division) {
elem.val(division);
});
}
}
在我的ide(netbeans)中,第二个(从属)下拉列表不会在下拉列表中显示所选值或更新模型。在这个小提琴(http://jsfiddle.net/676mp/)中,显示更新,但模型没有。我不确定如何将模型的值更新为所选值。
答案 0 :(得分:1)
因为在传递国家/地区值时,您在第二个指令中定义了scope: {...}
。这在指令中创建了一个隔离范围,因此元素上的ng-model实际上不起作用,您需要在指令的新隔离范围中创建与父变量的双向绑定
scope: {
country: '@',
myDivision: '=division'
}
然后在HTML
中<division-select division="myDivision" country="{{myCountry}}"></division-select>
编辑:另请注意,在小提琴中,我更改了指令的模板,以便为自己的范围包含自己的ng-model