the docs(具体的には、ディレクティブとコンポーネントを比較するテーブル)によれば、角度コンポーネントは他のディレクティブを必要とします(またはコンポーネントのみですか?ただし、コンポーネントには、必要なコントローラにアクセスできるリンク機能がありません。 The sourceは、ドキュメントに反して、コンポーネントを作成するときに「要求」を使用できないことを示唆しているようです。それは本当ですか?角度コンポーネントで 'require'を使用する
11
A
答えて
17
引用元は古くなっています。 1.5.0以降、他のコンポーネントのコンポーネントコントローラcan be required(ディレクティブにも同じことが適用されます)。
012からの例shows the way how the components and directives should interactは、補助なしでlink
からのものです。
require
object and bindToController
を一緒に使用すると、必要なコントローラインスタンスが現在のコントローラにプロパティとして割り当てられます。
これはディレクティブリンク中に発生するため、必要なコントローラはコントローラコンストラクタで使用できないため、$onInit
magic methodが存在します。存在する場合、it is executed right after adding required controllers〜this
。
両方
app.directive('someDirective', function() {
return {
scope: {},
bindToController: {},
controllerAs: 'someDirective',
require: {
anotherDirective: '^anotherDirective'
},
controller: function ($scope) {
console.log("You don't see me", this.anotherDirective);
this.$onInit = function() {
console.log("Now you do", this.anotherDirective);
};
}
}
});
と
app.component('someComponent', {
controllerAs: 'someComponent',
require: {
anotherDirective: '^anotherDirective'
},
controller: function ($scope) {
console.log("You don't see me", this.anotherDirective);
this.$onInit = function() {
console.log("Now you do", this.anotherDirective);
};
}
});
宣言スタイルはボンネットの下同等であり、1.5で互換的に使用することができ、component
は簡潔なものです。
関連する問題
- 1. 角度1.5のコンポーネントとディレクティブ
- 2. 角度アプリケーションの外側に角度フィルタを使用する
- 3. 角度コンポーネントを使用してコンポーネントバインディングの変更を確認する方法
- 4. 角度UIを使用するには
- 5. コンポーネント間の角度2の値渡し
- 6. 角度コンポーネント:テンプレート置換オプションなし?
- 7. 使用RouteParams角度2
- 8. 角度2.0、子コンポーネントのルート変更を検出する方法
- 9. ng-contentの角度コードをコンポーネント側にレンダリングする方法は?
- 10. 角度2のコンポーネントを表示する方法は?
- 11. 角度2 | MDLコンポーネントを動的に作成する
- 12. 角2 - コンポーネントのObservablesを使用して他のコンポーネントに値を出力する
- 13. Typescript throws Declaration角度2のコンポーネントで予想されるエラー
- 14. $ scopeを使用するベストプラクティス。$ apply(); Angularコンポーネントを含む非角度のもので$スコープ
- 15. 角度コンポーネントのboundプロパティの値を設定できません
- 16. Win32 TextOutを使用して角度でテキストを描画する
- 17. ウェブパックで角度とローカルフェアを使用する
- 18. 角度指示でファイルレイヤープラグインを使用する
- 19. 角度ノードアプリでパスポートを使用する方法は?
- 20. 角度コントローラまたはスコープでangular.toJsonを使用する方法
- 21. イオン2で角度2 ajaxを使用する
- 22. ネストされたng-repeatで角度を使用する:
- 23. 既存のMVC 5アプリケーションで角度JSを使用する
- 24. 角度2のjavascriptでjQueryを使用する方法
- 25. 携帯機器のみで角度uiブートストラップカルーセルを使用する
- 26. ラウンドトリップルーティングと並んで角度ルーティングを使用する
- 27. 2つ以上のコンポーネントで角度2のルーティング
- 28. 角度uiRouterはテンプレート内の各コンポーネントをリロードします
- 29. ^require-access親スコープを持つ角ディレクティブ?
- 30. 角度 - 角度を使用しながら返されたJSON配列