[英]AngularJS : directive watch attribute expression
我想要一個指令來觀察屬性表達式的結果,例如:
<div scroll-if="test === selectedTest"></div>
這樣它就可以對變化作出反應並滾動到特定元素。 我似乎在努力尋找如何觀察這種表達方式的變化。
使用$watch
:
app.directive('scrollIf', function() {
return {
restrict: 'A',
link: function(scope, element, attributes) {
var actionScroll = function(newVal, oldVal) {
if(newVal!==oldVal) {
console.log("scrolling");
}
}
scope.$watch(attributes.scrollIf, actionScroll);
}
}
});
$watch
可以評估屬性表達式scroll-if
,如果此表達式為true,則actionScroll
偵聽器將運行。
有必要添加條件newVal!==oldVal
,因為actionScroll
總是第一次運行。 這在$ watch文檔中有解釋
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.