gpt4 book ai didi

javascript - 自定义指令中未定义的 ng-model 值

转载 作者:行者123 更新时间:2023-11-30 17:23:59 25 4
gpt4 key购买 nike

我正在编写一个自定义指令,它调用我们在其他地方使用的遗留 javascript 日期控件。我面临的问题是我发送的 ng-model 的值始终未定义.

此值来自在 Controller 中执行的 $http.get。该指令的代码似乎在运行 Controller 代码之前被命中,这就是发生这种情况的原因。有没有办法让指令仅在 Controller 初始化后运行?

app.directive('dateControl', function () {
return {
restrict: 'A',
require: '^ngModel',
scope: {
ngModel: '='
},
link: function (scope, element, attr) {
// scope.ngModel is undefined in here
alert(scope.ngModel);
addCalControlAngular(attr.id, scope.ngModel, attr.ngModel, attr.id);
}
}
});


<td date-Control ng-model="postAward.letterOfAwardDespatchDate" id="letterofaward">

最佳答案

如果指令在 Controller 内部,则它不会在 Controller 之前“命中”,但如果值来自 http 请求,那么它是未定义的,直到用值更新模型(希望有意义),以确保指令在接收后执行来自 http 的数据 你可以用 ng-if

做一个小技巧
<td procon-Date-Control ng-if="postAward.letterOfAwardDespatchDate" ng-model="postAward.letterOfAwardDespatchDate" id="letterofaward">

如果你这样做,指令将只在 ng-if 不是 null/undefined 或表达式是真实的情况下呈现,即 ng-if="postAward.letterOfAwardDespatchDate = = '昨天'"

关于javascript - 自定义指令中未定义的 ng-model 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24628758/

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