私は、その構造が非常に似ているいくつかのパネルからなるページを持っています。彼らはそれぞれ1つのコントローラを使用します。しかし、それらの類似性のために、私はそうのようなコントローラ機能を再利用:コントローラ機能を再利用する+それを拡張する
function panelController($scope) {
...
}
angular.module('myApp.controllers')
.controller('panel1Controller', panelController);
angular.module('myApp.controllers')
.controller('panel2Controller', panelController);
結果はパネル1とpanel2は独自の明確なスコープを持っていますが、ビューがバインドできるかという点で同じように見えるということです。
ここで、私はpanel3に同じパターンを使用したいが、わずかな拡張が必要なところにいる。つまり、私はpanel3の$ scopeにのみ入れたいものがあります。理想的には、私はこのようなことをしたいと思っています:
function panel3ControllerExtension($scope) {
$scope.panel3Field = "I must only live in panel3";
}
angular.module('myApp.controllers')
.controller('panel3Controller', panelController, panel3ControllerExtension);
しかし、それはできません。そこにこれに良いパターンがありますか?
編集: 同様のパネルは唯一、彼らは$スコープが含まれていることを期待するものでは似ています。具体的には、スコープに顧客オブジェクトを含めることを期待します。だからpanel1は$ scope.customer.nameにバインドし、panel2は$ scope.customer.phoneにバインドします。 ...彼らは違って見えるので、私は違う振る舞いをするので、私はそれらの指示を行うことが行く方法だとは思わない。私が間違っているなら私を訂正してください。
コードの再利用可能な部分にサービスを使用するようにしてください。 –