コントローラーを 1 つ定義し、わずかな違いで 2 つのビューに適用します。
角度コード:
app.controller('MyCtrl', function($scope) {
$scope.canSave = false;
$scope.demo = {
files : [{
filename: 'aaa.html',
source: '<div>aaa</div>'
}, {
filename: 'bbb.html',
source: '<div>bbb</div>'
}]
}
$scope.newFile = function(file) {
$scope.demo.files.push(file);
}
$scope.$watch("demo.files", function(val) {
$scope.canSave = true;
}, true);
});
ビュー 1:
<div ng-controller="MyCtrl"></div>
ビュー 2:
<div ng-controller="MyCtrl"></div>
サンプル コードは非常に単純ですが、実際のプロジェクトには多くのコードとロジックがあります。
ビュー 1 とビュー 2 の機能はほとんど同じで、いくつかの違いがありますが、コントローラーでそれぞれのコードを記述する必要があります。
ほとんど同じロジックを持っているため、2 つの異なるコントローラーを作成したくありません。2 つのコントローラー間でロジックを共有するためにロジックをサービスに移動したくありません。これは、ロジックがサービスとして一般的ではないためです。
それを行う他の方法はありますか?