2016-08-23 104 views
0

我想觀看服務中的陣列,真的很掙扎。服務中的角度觀看陣列

的服務

angular.module('starter.entities',[]).service('Entities', function() { 
var _entities = this; 

// public API 
this.locations = []; 

document.body.addEventListener("dbready", function(){ 
    buildModel(function(locations) { 
    _entities.locations = locations; 
    }); 
}); 

的控制器

.controller('DashCtrl', function($scope, Entities) { 

    $scope.$watch(function() { return Entities.locations }, function() { 
    doSomething... 
    }, true); 

.....

Bascially它加載數據庫中的數據,我想更新UI時加載數據。

監視功能在第一次加載發生時調用,但不會在數據加載發生時調用。

有沒有簡單的方法來獲得$手錶發生?

回答

1

來自AngularJS框架之外的事件需要通知$apply模型的變更框架。

app.service('Entities', function($document, $rootScope) { 
    var self = this; 

    // public API 
    this.locations = []; 

    $document.find("body").on("dbready", function(){ 
     buildModel(function(locations) { 
     self.locations = locations; 
     //Use $apply to notify AngularJS framework 
     $rootScope.$apply(); 
    }); 

}); 

欲瞭解更多信息,請參閱AngularJS $rootScope.scope API Reference -- $apply