gpt4 book ai didi

javascript - Angular Directive(指令) : ng-model not updated properly when selection changes

转载 作者:行者123 更新时间:2023-12-03 10:38:13 25 4
gpt4 key购买 nike

我有以下指令:

app.directive('skiTest', function($timeout,$compile) {
return {
'replace': true,
'restrict': 'E',
'scope': {
'data': '=',
'selecto': '@',
'ngModel': '='
},
link: function (scope, element, attrs) {
attrs.$observe("selecto", function () {
$timeout(function () { // we need a timeout to compile after the dust has settled
$compile(element.contents())(scope); //recompile the HTML, make the updated content work.
},0);
});
},
'template':'<div><select name="testSelect" ng-model="ngModel" ng-options="{{selecto}} in data"><option value="">Code</option></select></div>'
}

});

http://jsfiddle.net/L269zgbd/1/

如果我尝试在指令选择框中选择一个国家/地区,ng-model 对象将被设置为 null。

知道为什么会这样以及如何解决这个问题吗?

基本上,我希望指令选择的行为与非指令选择的行为相同。

谢谢!

最佳答案

如果您升级 fiddle 中使用的 Angular 版本,则以下内容无需使用 $compile$timeout

app.directive('skiTest', function () {
return {
'replace': true,
'restrict': 'E',
'scope': {
'data': '=',
'selecto': '@',
'ngModel': '='
},
'template': '<div><select name="testSelect" ng-model="ngModel" ng-options="{{selecto}} in data"><option value="">Code</option></select></div>'
}
});

DEMO

关于javascript - Angular Directive(指令) : ng-model not updated properly when selection changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com