私は現在、隔離されたスコープを使用してディレクティブで変更を開始するために戦っています。今のところ、ng-controllerからより多くのコンポーネントベースのアーキテクチャーに移行しようとしていますが、予想以上に難しいことが分かります。隔離されたスコープを持つディレクティブのng-changeで動作するAngularJS - コンポーネントベースのアーキテクチャに移動
私は働くことができないようなフィドルです。 fiddle
私は、問題はここに
app.directive("search", function(service) {
return {
restrict: 'E',
replace: true,
scope: {},
controller: ['$scope', function($scope) {
$scope.search = function(keyword) {
service.searchData(keyword);
};
}],
template: '<div style="padding-bottom: 15px;">' +
'<center>' +
'<input type="text" ng-model="keyword" ng-change="search(keyword)"/>' +
'</center>' +
'</div>'
};
});
のどこかにあるかなり確信している。しかしフィドルは私が達成しようとしているかのより完全なアイデアを与えるだろう。
controller: searchCtrl
以下のように
これはサービスコールをトリガする際に機能しますが、一度トリガされると、最大コールスタックを超過するまでダイジェストサイクルごとに実行されます。私は実際にコードを実行するcodepenに移動しましたhttp://codepen.io/anon/pen/qqzwJB – Ernie
あなたの工場でいくつかの問題があります、私はそう望みます –
私の答えに示されているように、それは正しい方法の一つですコントローラーが依存関係注入を必要とする場合、コントローラーを指示から呼び出す。それ以外の場合、依存関係を注入できません –