2015-10-16 39 views
0

我在某個控制器的作用域上有一個對象,綁定到隨附視圖上的一些輸入。我想與其他控制器共享該對象中的數據,以便它們可以讀取它們,但它們不應該能夠修改它。如何將只讀訪問共享到數據模型?

在我看來,如果它把模型放在服務/工廠中,我要麼允許或者阻止所有的修改。同樣的東西,如果我把它放在鼻根鏡上。

做這種事情的方法是什麼?

+1

我與服務/工廠去。 – ryanyuyu

+0

@ryanyuyu對,這就是我目前正在做的。我希望能有一種方法來封裝更多的東西 – DSPC

回答

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(); 
+0

簡單而乾淨。謝謝。 – DSPC

0

只是爲了討論。如果您使用$rootscope在全球存儲您的數據,如$rootscope.data()。例如,如果您定義了$rootScope.data(),並且在控制器中定義了函數$scope.data(),因爲您忘記了第一個創建的data(),則肯定會出錯。

所以最好的方式來使用這種情況角service更好也請忍受我的英語。