2017-04-17 31 views
0

如果我有上有一個屬性自定義指令:傳遞函數爲指令與屬性值

<my-directive data-value="myController.somePropertyOnAController"><my-d...> 

有沒有在所有通過該屬性從控制器到該指令和使用功能之間的差異只要它們都傳遞相同的屬性值,就將該屬性傳遞給該指令?

<my-directive data-value="myController.getSomePropertyOnAController()"><my-d...> 

今天有人告訴我,在第二種情況下,髒檢查無法正常發生,而且我還沒有找到任何相應的結果。我試圖理解爲什麼使用函數會影響到這裏。

+0

看到這個http://stackoverflow.com/questions/14050195/what-is-the-difference-between-and-in-directive-scope-in​​-angularjs –

+0

@HadiJeddizahed謝謝爲哈迪鏈接,但我認爲我的問題是不同的。在這兩種情況下,傳遞給指令的內容都是相同的,而用於描述屬性綁定的符號在這種情況下確實不適用。如果我傳遞函數而不是函數值,我可以理解你的意思。但在這種情況下,對我來說,它完全一樣。對? – ialexander

+1

不,這是不正確的。當你將一個函數傳遞給它的類型爲字符串的指令的屬性(即'@')時,那麼該函數將解釋爲字符串。我不明白你的意思嗎? –

回答

1

指令的範圍有幾種類型,如下所示。

`@` Attribute string binding 

`=` Two-way model binding 

`&` Callback method binding 

`<` One-way binding 
當你傳遞給指令屬性的函數,它的範圍的類型爲字符串(即 @),那麼函數解釋爲字符串

。 更多的信息,您可以看到this link

+0

謝謝。雖然我理解各種綁定,但我誤解並認爲函數的返回值將被傳入,而不是函數本身。 – ialexander