2017-04-17 9 views
0

私はそれの属性持つカスタムディレクティブがある場合:プロパティ値に対する指令に関数を渡す

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

全くディレクティブにコントローラからそのプロパティを渡すと機能を使用しての間に違いはありますが同じプロパティ値を渡す限り、そのプロパティをディレクティブに渡しますか?

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

私は今日、汚れたチェックが第2のケースでは正しく実行されないと言われましたが、その影響を見つけることができませんでした。私は関数を使うことがなぜここで干渉するのかを理解しようとしています。

+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

関連する問題