我在某個控制器的作用域上有一個對象,綁定到隨附視圖上的一些輸入。我想與其他控制器共享該對象中的數據,以便它們可以讀取它們,但它們不應該能夠修改它。如何將只讀訪問共享到數據模型?
在我看來,如果它把模型放在服務/工廠中,我要麼允許或者阻止所有的修改。同樣的東西,如果我把它放在鼻根鏡上。
做這種事情的方法是什麼?
我在某個控制器的作用域上有一個對象,綁定到隨附視圖上的一些輸入。我想與其他控制器共享該對象中的數據,以便它們可以讀取它們,但它們不應該能夠修改它。如何將只讀訪問共享到數據模型?
在我看來,如果它把模型放在服務/工廠中,我要麼允許或者阻止所有的修改。同樣的東西,如果我把它放在鼻根鏡上。
做這種事情的方法是什麼?
你可以把模型在服務/工廠,並分配的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();
簡單而乾淨。謝謝。 – DSPC
只是爲了討論。如果您使用$rootscope
在全球存儲您的數據,如$rootscope.data()
。例如,如果您定義了$rootScope.data()
,並且在控制器中定義了函數$scope.data()
,因爲您忘記了第一個創建的data()
,則肯定會出錯。
所以最好的方式來使用這種情況角service
更好也請忍受我的英語。
我與服務/工廠去。 – ryanyuyu
@ryanyuyu對,這就是我目前正在做的。我希望能有一種方法來封裝更多的東西 – DSPC