Angular 1.Xのディレクティブは、デフォルトで双方向バインディングを持つように設定されています。コンポーネントにはデフォルトで独立したスコープがあります。以下の状況で正しくcontrollerVariable
負荷、私は上記のディレクティブのように設定している場合はAngularJS 1.5 - コンポーネントに双方向バインディングを設定する方法
<div class="my-view">
{{controllerVariable}}
</div>
:私はのように見える景色を持って
<div ng-controller="myController">
<my-view></my-view>
</div>
しかし、私はそれのように設定している場合
myApp.component('myView', {
templateUrl: '/path/to/view',
bindings: '='
});
この場合、変数値は表示されません。変数に$ctrl
を追加しようとしました:
<div class="my-view">
{{$ctrl.controllerVariable}}
</div>
しかし、これには値も表示されません。
私はここで何が欠けていますか?
コンポーネントでは双方向バインディングは推奨されていません。コンポーネントはコンパクトで再利用可能な要素として設計されており、完全に独立しているため、周囲のHTML/JavaScriptに依存せず、周囲のHTML/JavaScriptの変更もありません。コンポーネントは**他のapp要素と通信する**ことができますが、他の要素によって変更または変更することはできません。 – Claies