:コントローラーを指令のlink関数に完全に置き換えることはできますか?私はこの記事を読んでいた
http://teropa.info/blog/2014/10/24/how-ive-improved-my-angular-apps-by-banning-ng-controller.html
コントローラがこれまでNG-コントローラを使用する必要性を除去するために、このようなディレクティブに統合することを提案する:
でangular.module('contestantEditor', [])
.directive('cContestantEditorForm', function() {
return {
scope: {
contestants: '='
},
templateUrl: 'contestant_editor.html',
replace: true,
controller: 'ContestantEditorFormCtrl',
controllerAs: 'ctrl',
bindToController: true
};
})
.controller('ContestantEditorFormCtrl', function($scope) {
this.contestant = {};
this.save = function() {
this.contestants.push(this.contestant);
this.contestant = {};
};
});
しかし、他の誰かがこの解決策を提案しています:
angular.module('contestantEditor', [])
.directive('cContestantEditorForm', function() {
return {
scope: {
contestants: '='
},
templateUrl: 'contestant_editor.html',
replace: true,
link: function (scope) {
scope.contestant = {};
scope.save = function() {
scope.contestants.push(scope.contestant);
scope.contestant = {};
};
}
};
});
彼はコントローラーを作る必要がなく、コントローラーのバージョンと全く同じことをしています。ですから、どちらの方法の長所と短所が、ng-controllerで伝統的な角度を書いているのか、コントローラーが終わりまでにも必要であるのかどうか不思議です。
「コントローラーは指令に置き換えることはできません」という記事は読んでいますか?彼らはコントローラーを取り除いたわけではなく、むしろコントローラーを指示に組み込んだ。ほぼ正常に動作しますが、ng-controllerの必要性がなくなり、 "bindToController"属性でスコープを持つことさえありません。回答を修正してコントローラを指示に統合することをより具体的に言えるでしょうか? – m0meni
いいえ、私ははい、それについての第2部 –