HTML
<a custom-attr='{{ controller.object.value }}' data-ng-model='controller.object.value'>
角指令
.directive('customAttr', function() {
return {
require: 'ngModel',
controller: 'ControllerName',
controllerAs: 'cName',
link: function (scope, el, attr, ctrl) {
el.on('click', function ($event) {
if (ctrl.$viewValue && attr.customAttr) { // breakpoint
}
})
}
}
})
目標:
看到attr.customAttr
正確的值在第一時間指令運行。AngularJS自定義屬性不計算第一次指令運行
說明
在斷點處的if語句停止指令的鏈接功能裏面,我希望看到一個布爾值。我已經驗證了模型中使用$log.log()
的布爾值是正確的。不幸的是,指令第一次運行時,attr.customAttr
評估爲對模型值(調試器中的'controller.object.value'
)的引用字符串,然後在指令的後續迭代中正確評估布爾值。我嘗試從屬性中移除大括號,然後我得到一個不變的空字符串。
我能做些什麼會導致模型值第一次正確評估?
注:我已經做了一個類似的版本,以前沒有問題的數值。關鍵區別似乎是工作版本位於輸入元素上,並且同時具有ngModel和ngValue屬性。
這不適合我,但謝謝! – Kraken