私は2つの同じ部分からなるビューを持っていますが、内容のみが異なります。ですから、基本的には、左右のパーツの両方に1つのコントローラーと1つのビューを使用したいと思っています。私は(HTMLで)何
:angular.js、javascript内の複数のコントローラインスタンス
<div class="board_body">
<div class="left_board" ng-controller="leftBoardController">
<div ng-controller="panelController" ng-include="template"></div>
</div>
<div class="right_board" ng-controller="rightBoardController">
<div ng-controller="panelController" ng-include="template"></div>
</div>
</div>
私は左と右のコントローラ内のすべての初期化ロジックを維持し、panelControllerを使用して、それが左右の部品のためのビューです。この場合、panelControllerは、異なる値を持つ共通の$ scope変数を使用するため、共有することができます(varsは左右のコントローラに作成され、panelCotrlに表示されます)。 panelView.htmlで
angular.module("radar.leftController", [])
.controller("leftController", function ($scope, ...) {
$scope.data = getSomeData();
}
angular.module("radar.rightController", [])
.controller("rightController", function ($scope, ...) {
$scope.data = getOtherData();
}
angular.module("radar.panelController", [])
.controller("panelController", function ($scope, ...) {
$scope.template = "somePath/panelView.html";
// shared logic for left and right contrls goes here
}
:
<div>data: {{data.length}}</div>
が右からIは、左右両方VARSを変更することができるが、左から私は左VARSを(予想通り)を変更することができると思われます。 (左右の部分が完全に分離している必要があります)。
コントローラを再利用する(複数のインスタンスを作成する)ための適切な方法は何ですか?
本当に素早く見ると、あなたがやっていることはうまくいくはずです。右から、左と右の両方のヴァールを変更できると言ったらどういう意味ですか? plunkrに関するより完全な例を投稿できますか? – dtabuenc