我想找到一種方法來創建一個服務,可以坐在我的最高級別的作用域,並保存變量,如用戶狀態和其他任何。AngularJs服務綁定不更新
現在我正在嘗試創建一個簡單的示例,將數字綁定在一起。然而,UI層不會更新,除非我強迫我的角度再次獲得價值。
如果您刪除了說getNumber()的行,您會發現html上的數字永遠不會更新會發生什麼情況。我試着調用$ apply,並且給我一個已經生效的錯誤。
代碼:
$scope.update = function() {
SampleService.update();
//Forcing the number to be updated by asking the service to return it
$scope.number = SampleService.getNumber();
};
//Why doesn't this force $scope.number to change as SampleServce.number changes?
$scope.number = SampleService.number;
服務:
(function() {
'use strict';
angular
.module('Services')
.service('SampleService', SampleService);
SampleService.$inject = ['$http'];
function SampleService($http) {
var Service = {
number: 0
};
Service.update = function()
{
Service.number += 1;
};
Service.getNumber = function()
{
return Service.number;
};
return Service;
}
})();
我只是想通了,但不是存儲$ scope.service = SampleService我這樣做,$ scope.State = SampleService.getData()它從SampleService返回Service對象。我們兩種類似但不同的方法有什麼好處或缺點? –
直接設置和使用'getData()'之間的唯一區別是通過使用'getData()'函數,您的服務不必返回任何內容。 – Claies
謝謝你回答這個問題和評論中的問題。我喜歡我的getData方法,因爲我可以從字面上看到我期待我的數據。 –