我有一個非隔離範圍指令。我不想孤立它,因爲它需要與其他指令的元素。然而,我需要在範圍上觀看一件物品。所以我試過這個:
scope.$watch(function() {
return scope.$apply(attrs.myAttribute);
}, function(val) {
return val ? doSomething():doSomethingElse();
});
這不起作用,因爲角度拋出一個摘要循環已經在進行中的錯誤。所以我的問題是,我怎樣才能動態觀察範圍內的項目與非隔離指令。
感謝,
對不起,但我不相信這個作品。如何調用'scope。$ watch(attrs',如果範圍內沒有任何東西?你不能僅僅看這種風格的屬性,而且OP不需要隔離範圍 - 所以在指令級定義一個範圍定義如果我解釋這個答案,你可以編寫一個這樣的小工作演示嗎?[這是一個JSFiddle](https://jsfiddle.net/rqej2b4j/)。你可以使這個功能? – scniro
@scniro在我的項目指令是在控制器的範圍內,所以我需要指令來監視已經在範圍中定義的東西,但是動態地這樣做,例如,如果控制器定義了scope.foo,我需要我的元素像所以每當foo改變我的指令都可以採取相應的行動,我肯定也會得到你的答案,但我不希望屬性被解釋爲一個字符串。 –
user3828000
但是'myAttr =「foo」'不會從指令內部被監視 - 它僅僅是一個屬性,並且沒有任何限制。你如何把它放在範圍上? @ user3828000。 ''範圍。$ watch(attrs.myAttr,''總是會產生'undefined',所以在上面的例子中,我會懷疑doSomethingElse()總是會激發 – scniro