如何共享对数据模型的只读访问权限?
How do I share read-only acces to a data model?
我在某个控制器的作用域上有一个对象,绑定到伴随视图上的一些输入。我想与其他控制器共享该对象中的数据,以便他们可以读取它,但他们不应该能够修改它。
在我看来,如果它把模型放在 service/factory 中,我要么允许要么阻止所有修改。如果我把它放在 rootscope 上也是一样。
做这样的事情的常规方法是什么?
只是为了讨论。如果你使用 $rootscope
像 $rootscope.data()
一样全局存储你的数据。例如,如果您定义 $rootScope.data()
并在控制器中定义一个函数 $scope.data()
因为您忘记了第一个创建的 data()
,肯定会出错。
所以使用这种场景的最佳方式angular service
更好也请耐心等待我的英语。
您可以将模型放在 service/factory 中,并为其分配 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();
我在某个控制器的作用域上有一个对象,绑定到伴随视图上的一些输入。我想与其他控制器共享该对象中的数据,以便他们可以读取它,但他们不应该能够修改它。
在我看来,如果它把模型放在 service/factory 中,我要么允许要么阻止所有修改。如果我把它放在 rootscope 上也是一样。
做这样的事情的常规方法是什么?
只是为了讨论。如果你使用 $rootscope
像 $rootscope.data()
一样全局存储你的数据。例如,如果您定义 $rootScope.data()
并在控制器中定义一个函数 $scope.data()
因为您忘记了第一个创建的 data()
,肯定会出错。
所以使用这种场景的最佳方式angular service
更好也请耐心等待我的英语。
您可以将模型放在 service/factory 中,并为其分配 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();