function storyData($http, $q) {
var URL = 'stories.json';
var storyCache = [];
this.getStories = function() {
var deferred = $q.defer();
alert(URL);
$http({method: 'GET', url: URL})
.success(function (data, status, headers, config) {
storyCache = data;
alert(storyCache); //correct data appears in the alert window, but this doesn't set the instance storyCache variable for some reason
deferred.resolve(data);
})
.error(function (data, status, headers, config) {
deferred.reject(status);
});
return deferred.promise;
};
this.stories = function() {
return storyCache;
}
}
我的应用程序 -
'use strict';
var angularApp = angular.module('ccsApp', ['ngRoute', 'ngAnimate', 'ui.bootstrap']);
angularApp.config(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/', {
templateUrl: 'stories.html',
controller: 'StoryController as StoryCtrl',
resolve: {
stories: function(storyData) {
return storyData.getStories();
}
}
})
.otherwise({
redirectTo: '/'
});
}
]);
在我的控制,我不注入从routeProvider的“故事”的值,这样我可以用我的服务。
为什么我无法从storyCache我的$ HTTP方法中改变? 我相信这是一件非常简单的,但我的研究并没有使我的答案。 预先感谢您的帮助。
异步。 这方面工作正常,并没有问题。 我保证,我用我的routeProvider决心对象拥有的数据。 另外,我保证我的deferred.resolve面前的数据(数据)方法,通过它发出警报执行。 我没有解决方案,但一个错误在我使用异步的。 不是解决办法。