2015-08-04 4 views
3

пытаются превратить этотиспользуя ngStorage как массив в ионных

.service('dataStore', function($localStorage,$scope){ 
    this.entfeeds=[]; 
    this.topfeeds=[]; 
    this.intfeeds=[]; 
}) 
.controller('GenFeedCtrl', function ($scope,.... 
    $scope.feeds = FeedList.get(feedSources, dataStore.topfeeds); 

, который работает, за исключением запуска по телефону Кордове, он вернется только два пункта

так пытается использовать ngStorage для хранения массива

.service('dataStore', function($localStorage,$scope){ 
    $scope.$storage = $localStorage.$default({ 
     etf:[], 
     tpf:[], 
     itf:[] 
    }); 

    this.entfeeds=$storage.etf; 
    this.topfeeds=$storage.tpf; 
    this.intfeeds=$storage.itf;}) 

    .controller('GenFeedCtrl', function ($scope,.... 
    $scope.feeds = FeedList.get(feedSources, dataStore.topfeeds); 

, но не работает в браузере эму, выдает следующую ошибку

Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <-  dataStore 

http://errors.angularjs.org/1.3.13/ $ форсунка/unpr? P0 = copeProvider% 20% 3C-% 20% 24scope% 20% 3C-% DATASTORE на http://localhost:8100/lib/ionic/js/ionic.bundle.js:8762:12

ответ

4

Там нет в службе нет $scope. $scope необходим только для просмотра связанных компонентов, и служба не имеет никакого отношения к представлению.

$rootScope может быть введен в сервис, но он не подходит для хранения данных. Было бы более широко использоваться в службе транслировать события

Вы можете использовать переменные, хотя определить вещи, которые непосредственно не должны быть связаны с this

.service('dataStore', function($localStorage){ 
    var $storage = $localStorage.$default({ 
     etf:[], 
     tpf:[], 
     itf:[] 
    }); 

    this.entfeeds=$storage.etf; 
    this.topfeeds=$storage.tpf; 
    this.intfeeds=$storage.itf; 
}) 
+0

огромное спасибо, не могу поверить, что забыл – user2505728

 Смежные вопросы

  • Нет связанных вопросов^_^