2つの違いが何であるか尋ねることはありませんが、コンポーネントのディレクティブとコントローラの両方がある場合に、それらがどのように連携しているのか疑問に思っています。Angular 1.Xコントローラとディレクティブとの関係
答えて
私は角度1.xのあまり明確でない側面の1つについて関連する質問だと思うので、なぜこれをダウン投票したのか分かりません。コントローラとディレクティブを設定するには首相の理由の
ディレクティブAPIをさらす
一つの他のディレクティブにディレクティブのAPIを公開することです。その良い例はngModel
とngModelController
です。多くのカスタムディレクティブは、カスタムディレクティブが宣言されている場所以上に宣言されているngModel
にアクセスする必要があります。
{ require:'^ngModel' }
これは実際にこのカスタムディレクティブが追加作業を行うためにngModelController
で利用可能なAPIにアクセスする必要があるを言っている:あなたは経由ディレクティブの定義でこれを参照してください。たとえば、特定のngModelに対してカスタムの構文解析や書式設定を指示したいとします。私のアプリでは、サーバーから返された日付文字列のエラーが発生していました。私は、エラーを処理して(これはところでCoffeeScriptの場合)、正しく文字列をフォーマットするために、このカスタムディレクティブを作成:
.directive 'dateString', [
()->
{
priority: 10
require: 'ngModel'
link: ($scope, elem, attrs, ngModel)->
ngModel.$formatters.push (val)-> new Date(val)
}
]
何ngModelController
がなかった場合、私は新しいフォーマッタ機能を追加するためのAPIへのアクセス権を持っていないでしょう。
結論として、同じUI要素で動作する可能性のある他のディレクティブ用のAPIを提供するディレクティブコントローラを作成することがあります。
クラシックコントローラの役割テンプレートはjQueryの実装を使用しようとするよりも良好であるにAPIを公開するために、コントローラを使用して、角の精神および意図内であるためです。言い換えれば、これを行う方が良いです:
ディレクティブw。この
ディレクティブワットのようなものVSコントローラ
controller: function($scope){
$scope.doSomething = function(){ ... }
},
template: '<div><button ng-click="doSomething()">Click Me</button></div>'
。 jqueryのような実装
link: function($scope, elem, attrs){
elem('button').bind('click', function(){ ... })
},
template: '<div><button>Click Me</button></div>'
- 1. Angular 1.x FactoryからAngular 1.xコントローラへデータを送信
- 2. 角度+ RequireJSのコントローラとディレクティブ
- 3. ControllerAs親との1.xディレクティブ共有スコープ
- 4. MVC Spring AngularJSディレクティブとコントローラ
- 5. AngularJs 1.xのディレクティブ:分離スコープとngModelが必要
- 6. アプリケーションのアーキテクチャ:ディレクティブとコントローラ
- 7. コントローラとディレクティブ変数のスコープ
- 8. PlayFramework:コントローラとの依存関係インジェクションの関係
- 9. コントローラのサイズ変更とサイズの関係
- 10. 1対1と1対多の関係
- 11. EF6.x CodeFirst 1対多の関係
- 12. 新しいライブ逆の関係と1対1の関係レルム
- 13. モデルとコントローラの関係laravel 5
- 14. Node.js + Express:ルートとコントローラの関係
- 15. .NET MVC3 - URLとコントローラの関係?
- 16. Colladaの骨格とコントローラ関係
- 17. 角ディレクティブの依存関係
- 18. MVC codefirstとの1対1の関係
- 19. 角度:コントローラとディレクティブとのコラボレーション
- 20. npmパッケージangular-cliと@ angular/cliの関係は何ですか?
- 21. Zend 1.xとDoctrine 2 - オブジェクトとその関係をコピーする際の問題
- 22. ハイバネートと1対1の関係
- 23. MYSQLと1対1の関係
- 24. JOGL 1.xをbuildrとの依存関係として使用するには?
- 25. Angularjs 1.XとAngular 2の対応HostBindingとHostListener
- 26. ダーツのWebコンポーネントとAngularのディレクティブ
- 27. Angular 1ディレクティブがng-repeat内のディレクティブ内にレンダリングされない
- 28. ObjectをパラメータとするAngularディレクティブのテスト
- 29. Angularディレクティブ
- 30. ng-remote-validateディレクティブとAngular-xeditableディレクティブの使用
意味が明確ではありません。コンポーネント*は*ディレクティブです。 – estus