2017-04-17 62 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