У меня есть 2 функции первого запуска с угловым контроллером, а вторая загрузка состояния из базы данных, проблема в том, что JavaScript является асинхронным, переменная $scope.info.loadState
была не определена, когда я использую в функции поиск я найти функцию .done
, как решение этой проблемы, но теперь при запуске контроллер получает следующую ошибку Error: loadByIdAssetState(...) is undefined
кода функции является следующимиОШИБКА: функция (...) не определена
angular.module('assetModule')
.controller('assetEditCtrl', ['selectedService','assetRESTService'
,'assetStateRESTService','$location', '$modal'
,'$scope', assetEditCtrl]);
function assetEditCtrl (selectedService, assetRESTService, assetStateRESTService, $location, $modal, $scope) {
$scope.file = {};
$scope.data = {};
$scope.info = {};
initCtrl();
function initCtrl() {
$scope.info.selected = {};
if(selectedService.getSelected() != undefined){
$scope.file.asset = selectedService.getSelected();
selectedService.setSelected(undefined);
$scope.info.loadState = loadByIdAssetState($scope.file.asset.assetState_id)
.done(function(state) {
console.log(state);
$scope.file.asset.stateName = state.state;
return state;
});
console.log($scope.info.loadState);
$scope.file.asset.stateName = $scope.info.loadState.state;
}
}
function loadByIdAssetState(stateId) {
assetStateRESTService.getByIdAssetStates(stateId)
.then(function(state) {
console.log(state);
$scope.info.loadStateReady = true;
return state;
})
.catch(function(error) {
console.log(error);
});
}
}
getSelected
это сервис, который вернуть выбранным актив, актив имеет assetState_id, я хочу, чтобы имя было в этом состоянии
вы можете предоставить полный код? –
Я редактирую код, пока это только одно назначение – oriaj