私は?
を使用して、オプションとしてマークされている私のディレクティブの属性を持っています。例えば、a="foo()"
。インラインオブジェクトとの角度拘束オプションの作成方法</p> <pre><code>scope: { a:'=?' }, </code></pre> <p>これはあなたがすることを選択した場合、あなたが一方向にバインド物事を渡すことができることを意味する必要があります:
私は、インラインオブジェクト、a="{x: 5}"
に合格しようとすると、しかし、それはエラーで失敗します。
Error: [$compile:nonassign] Expression '{ x: 5 }' in attribute 'a' used with directive 'dir' is non-assignable!
このケースでは、私の?
を無視するように見えます。 ?
を尊重したり、エラーを抑制する方法はありますか?ここで
はそれの例では、オブジェクトのための機能で作業したが失敗している:あなたは間違っているので
http://jsbin.com/fapodigiza/edit?html,js,console,output
オプションの双方向の結合は、私が何をしたい確かです。 「オプションの双方向」と「一方通行」の違いは何と思いますか?彼らは同じことに終わらないのですか? –
@BuhBuhこの記事では、https://toddmotto.com/one-way-data-binding-in-angular-1-5/をよく説明しています。双方向データバインディングでは何もできませんリテラル値は代入可能ではないので、あなたの場合と同じように、これを試してみるとエラーがスローされます。一方的な問題は存在しないため、オリジナルの値は決して変更されません。参照にプロパティを追加/削除することはできますが、変更することはできません。 – sielakos
foo()への双方向バインドを試みると、なぜエラーになりませんか?確かにfoo()もunasignableです。 –