我正在开发一个应用程序,该应用程序在controllerA
页面上使用多个(但相似)控制器()和另一个controllerB
可以更改某些属性的控制器(),但前提controllerA
是先前选择了元素。
(在controllerA
某些属性中可能有默认值,通过使用 data- 属性传递和应用)
在这个阶段,我只能修改最后一个颜色属性controllerB
(这是有道理的,因为那是活动范围。我的问题是,如何将 controllerB 范围更改为 selected 的“活动”范围副本controllerA
?
// Code goes here
var webApp = angular.module("webApp", []);
webApp.controller("controllerA", function($scope, $rootScope, $element, styleFactory){
$scope.selected = false;
var color = angular.element($element[0]).attr("data-style-color");
styleFactory.setColor(color);
$scope.data = styleFactory.getData();
$scope.select = function(){
$scope.selected = !$scope.selected;
}
});
webApp.controller("controllerB", function($scope, $rootScope, $element, styleFactory){
$scope.data = styleFactory.getData();
});
webApp.factory("styleFactory", function(){
var data = {"style":"color:yellow"}
return {
setColor: function(color){
data = {"style":"color:"+color};
},
getData: function(){
return data;
}
};
});
完整示例: http ://plnkr.co/edit/He2m7ArfRSur9Igq2eur?p=preview
谢谢,--iM