我有一個由兩個相同部分組成的視圖,只有內容不同。所以,基本上我想以某種方式爲左右兩部分使用一個控制器和一個視圖。
我這樣做(在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變量(變量在左側和右側控制器中創建,因此它們對panelCotrl可見)。
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
}
在panelView.html:
<div>data: {{data.length}}</div>
似乎從右邊我可以改變左,右瓦爾,但是從左邊我只能改變左瓦爾(如預期)。 (我需要將左右部分完全分開)。
那麼,重用一個控制器(創建多個實例)的正確方法是什麼?
真正快速地看着它,你在做什麼應該工作。當你說從右側可以改變左右兩個變量時,你是什麼意思?你能在plunkr上發佈一個更完整的例子嗎? – dtabuenc