因此,這裏是我的問題,我有一些函數/變量在父控制器編程方式創建一個控制器的新實例
function parentController($scope) {
$scope.numberOfChildren = $scope.numberOfChildren + 1 || 1;
console.log($scope.numberOfChildren);
$scope.someFunction = function(argument) {
// do stuff
$scope.someVariable = result of the function
}
}
我打電話這個控制器是指令控制器和其他兩個控制器被稱爲在同一視圖
function firstChildController ($scope, $controller) {
var aVariable = 1;
$scope.otherVariable = 10;
$controller('parentController', {$scope: $scope});
$scope.someFunction(aVariable);
}
function secondChildController ($scope, $controller) {
var aVariable = 6;
$scope.otherVariable = 11;
$controller('parentController', {$scope: $scope});
$scope.someFunction(aVariable);
}
我想要什麼,是不是可以共享父範圍的兩個孩子。 現在,只有一個父控制器的實例,所以當我根據它在同一個視圖上調用兩個指令時,我得到$ scope.numberOfChildren === 2. 我想要的是這個父控制器是加載兩次,但有分開的範圍($ scope.numberOfChildren === 1在每個子控制器)
我設法做到這一點在視圖模板中使用ng控制器和刪除$控制器調用,但我想以編程方式。 (我不想每次調用指令時都要寫相同的ng-controller代碼)。
<div ng-controller="parentController">
<first-directive></first-directive>
</div>
<div ng-controller="parentController">
<second-directive></second-directive>
</div>
最後,以保持同質化項目的代碼,我寧可不使用這個和VM的東西,如果有可能做的工作。
非常感謝你的回答亞歷克。事實上,指令分享範圍從他們被稱爲英寸 我只需要附加他們一個孤立的範圍(範圍:{}),問題解決了。 –
@AloïsdeLaComble,我很高興它有幫助。 –