Javascript 如何在angular js中实现有状态代理?
我正在尝试为角度应用程序实现一个状态模式 我只想在需要或发生状态更改时加载不同的状态属性 如果尚未加载任何内容,我希望加载数据,否则我希望立即返回结果 无论何时我返回一个承诺,我都会得到一个未定义的错误。我不知道我做错了什么 状态对象正在实例化为工厂Javascript 如何在angular js中实现有状态代理?,javascript,angularjs,ecmascript-6,angular-promise,Javascript,Angularjs,Ecmascript 6,Angular Promise,我正在尝试为角度应用程序实现一个状态模式 我只想在需要或发生状态更改时加载不同的状态属性 如果尚未加载任何内容,我希望加载数据,否则我希望立即返回结果 无论何时我返回一个承诺,我都会得到一个未定义的错误。我不知道我做错了什么 状态对象正在实例化为工厂 export default function appState($q, $rootScope, StateService, DateService, filterState) { var state = { dates: [],
export default function appState($q, $rootScope, StateService, DateService, filterState) {
var state = {
dates: [],
type: StateType.NOTLOADED
};
function _stateChange(type) {
if(type instanceof StateType) {
$rootScope.$broadcast(type.name);
state.type = type;
}
}
function _getDates() {
let deferred = $q.defer();
if(!state.dates.length) {
DateService.getAll().then(function(result) {
state.dates = result;
deferred.resolve();
});
} else {
console.log('no data needed');
deferred.resolve();
}
return deferred.promise;
}
function init() {
_getDates().then(function() {
console.log(state.dates);
});
}
if(state.type == StateType.NOTLOADED)
init();
return {
getDates: _getDates
}
}
显示使用promise未定义的位置以及具体错误是什么?
deferred.resolve()代码>没有任何值?
import angular from 'angular';
import appState from './app.state.js';
export default function() {
angular.module('app').factory('appState', appState);
}