Как реализовать прокси с состоянием в угловых JS?
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
}
}
Я пытаюсь реализовать шаблон состояния для углового приложения.
Я хочу загружать различные свойства состояния только тогда, когда они необходимы или когда происходит изменение состояния.
Если ничего еще не загружено, я хочу загрузить данные, в противном случае я хочу немедленно вернуть результат.
Всякий раз, когда я возвращаю обещание, я получаю неопределенную ошибку. Понятия не имею, что я делаю не так.
Объект состояния создается как фабрика.
import angular from 'angular';
import appState from './app.state.js';
export default function() {
angular.module('app').factory('appState', appState);
}