0
我一直在AngularJS中使用服務來在控制器之間共享數據。在一個特定的服務中,我還想公開一些功能來編輯共享對象。我創建了一個簡單的jsfiddle這裏:在AngularJS服務中共享數據
http://jsfiddle.net/RichardBender/CQ6Z4/2/
angular.module('myApp', [])
.factory('myService', function() {
return {
mySharedObject:{
myText:'abc'
},
updateObject: function() {
console.log('function called');
console.log(this);
this.mySharedObject.myText = 'def';
}
};
})
我可以看到,「本」當我打電話updateObject()是不是字面服務返回的對象。我意識到我可以簡單地使這個服務依賴於另一個只公開共享數據對象的服務,但是有沒有辦法在不創建第二個服務的情況下這樣做呢?
感謝, 理查德
非常感謝,完美的工作。我對「這個」還是有點朦朧,所以我很欣賞文章鏈接。 –
如果您發現「此」行爲令人困惑,您可以考慮使用Coffeescript。他們引入了兩個運算符( - >和=>),後者自動完成了joakimbl在上面做的事情。這樣,你可以指望「this」被定義爲在函數被定義的地方匹配「this」,而不是它被調用的地方。 –