我在某个控制器的范围内有一个对象,绑定到随附视图上的某些输入。我想与其他控制器共享该对象中的数据,因此他们可以读取它,但是他们不能修改它。
在我看来,如果它将模型放在服务/工厂中,我要么允许或阻止所有修改。如果我把它放在rootcope上也一样。
做这样的事情的方法是什么?
答案 0 :(得分:0)
只是为了讨论这个问题。如果您使用$rootscope
全局存储数据,例如$rootscope.data()
。例如,如果您定义$rootScope.data()
并在控制器中定义函数$scope.data()
,因为您忘记了第一个创建的data()
,那么肯定会出错。
使用这种方案角度service
的最佳方式也更好,请用我的英语来表达。
答案 1 :(得分:0)
您可以将模型放入服务/工厂,并为其分配getter / setter函数,例如:
angular.factory('testFactory', [function(){
var _yourModel = {}
return {
yourModel: function(newValue){
if(newValue){
_yourModel = newValue
}else{
return angular.copy(_yourModel) //This will return a clone of _yourModel
}
}
}
}])
//In your controller
$scope.model = testFactory.yourModel();