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. 角度コンポーネントでリーフレットを使用する
- 2. 角度コンポーネントにブートストラップコンポーネントを使用する
- 3. 角度1.5のコンポーネントでControllerAsを使用
- 4. 角度1のアプリケーションで角度2のコンポーネントを使用
- 5. 角度コンポーネントの$ onChangesと$ onInitの使用
- 6. コンポーネントで角度アーキテクチャを使用するベストプラクティス
- 7. Apacheで複数のコンポーネントを使用する角度ルーティング
- 8. 複数のコンポーネントでコードを使用する角度ヘルプ
- 9. 角度2内でsetInterval関数を使用するコンポーネント
- 10. 角度で@inputを使用して別のコンポーネント内のコンポーネントをロードする
- 11. 角度Treeコンポーネント
- 12. 同じセレクタでコンポーネントを拡張する - 角度2 /角度CLI
- 13. サービスを使用してコンポーネントをリファクタリングする方法角度2
- 14. 角度2 - コンポーネント
- 15. 角度を使用してクリックしてコンポーネントにスクロールする
- 16. 角度2のコンポーネントの中のcdnのスタイルシートを使用する
- 17. 角度2を使用するAsp Mvcのコンポーネント
- 18. 同じセレクタを使用する角度2の複数のコンポーネント
- 19. コンポーネント内にテンプレートタグを使用する角度2?
- 20. 角度2別のモジュールのコンポーネントを使用する
- 21. コンポーネントがアンロード角度2 rc5
- 22. 角度2の成熟度:使用可能なコンポーネントに挑戦
- 23. コンポーネントは、角度JSで2
- 24. 角度2:multiplleコンポーネント
- 25. 角度2隠すコンポーネント
- 26. イオン3角度スタイリングmydatepickerコンポーネント
- 27. angleDartを使用して角度コンポーネントのアプリケーションレイアウトを固定
- 28. バインディングを使用して角度コンポーネントをHTMLにコンパイル
- 29. 角度UIルーターを使用してコンポーネントをレンダリング
- 30. サービスデータを角度コンポーネントにロード