如何共享数据模型的只读访问权限?

时间:2015-10-16 13:49:05

标签: javascript angularjs global

我在某个控制器的范围内有一个对象,绑定到随附视图上的某些输入。我想与其他控制器共享该对象中的数据,因此他们可以读取它,但是他们不能修改它。

在我看来,如果它将模型放在服务/工厂中,我要么允许或阻止所有修改。如果我把它放在rootcope上也一样。

做这样的事情的方法是什么?

2 个答案:

答案 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();