尝试转换此
.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);
但不使用浏览器emu,会出现以下错误
Error: [$injector:unpr] Unknown provider: $scopeProvider <- $scope <- dataStore
http://errors.angularjs.org/1.3.13/ $注射器/ unpr?P0 = copeProvider%20%3 C-%20%24scope%20%3 C-%DATASTORE 在http://localhost:8100/lib/ionic/js/ionic.bundle.js:8762:12
答案 0 :(得分: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;
})