Javascript 错误:函数(…)未定义
我有两个函数第一个从角度控制器开始,第二个从数据库加载状态,问题是因为JavaScript是异步的变量Javascript 错误:函数(…)未定义,javascript,angularjs,Javascript,Angularjs,我有两个函数第一个从角度控制器开始,第二个从数据库加载状态,问题是因为JavaScript是异步的变量$scope.info.loadState在函数中使用时未定义,搜索时我找到函数.done如何解决此问题,但是现在,当启动控制器时,会出现以下错误错误:loadByIdAssetState(…)未定义 功能代码如下所示 angular.module('assetModule') .controller('assetEditCtrl', ['selectedService','assetRES
$scope.info.loadState
在函数中使用时未定义,搜索时我找到函数.done
如何解决此问题,但是现在,当启动控制器时,会出现以下错误错误:loadByIdAssetState(…)未定义
功能代码如下所示
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
是一种返回所选资产的服务,该资产具有资产状态id,我希望名称处于此状态看起来您忘记将loadByIdAssetState
注入控制器,您必须这样做才能使用它。这样做:
function initCtrl(loadByIdAssetState) {
$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;
}
你能提供完整的代码吗?我编辑代码,现在它只是一个赋值谢谢你的回答,但是如果loadByIdAssetState
是在同一个控制器中定义的,为什么我要传递参数?如果我传递函数hw param get以下错误loadByIdAssetState不是一个函数
你将不得不显示更多的代码,因为我们看不到全貌。我用完整的控制器编辑了问题,问题的表述很糟糕,请道歉