Javascript AngularJS未捕获引用错误:未定义响应
嗨,我是AngularJS的新手。我试图调试其他人的代码,但收到一条错误消息,我不知道如何修复。错误消息为未捕获引用错误:未定义响应。这是我的控制器:Javascript AngularJS未捕获引用错误:未定义响应,javascript,angularjs,Javascript,Angularjs,嗨,我是AngularJS的新手。我试图调试其他人的代码,但收到一条错误消息,我不知道如何修复。错误消息为未捕获引用错误:未定义响应。这是我的控制器: (function () { angular .module('vidaexpress') .controller('accountManagerController', accountManagerController); accountManagerController.$inject = ['$state', 'acco
(function () {
angular
.module('vidaexpress')
.controller('accountManagerController', accountManagerController);
accountManagerController.$inject = ['$state', 'accountManagerService', 'toastr'];
function accountManagerController($state, accountManagerService, toastr) {
var vm = this;
vm.updatePassword = updatePassword;
vm.updatePhone = updatePhone;
init();
function init(){
getCustomerInfo();
}
function getCustomerInfo() {
accountManagerService.getCustomerInfo().then(function (response) {
vm.customerInfo = response;
}, function (error) {
vm.error = error;
});
}
function updatePassword(password) {
accountManagerService.updatePassword(password).then(function (response) {
if (response.error) {
displayError(response.error);
} else {
$state.go('main.manage.index');
}
}, function (error) {
displayError(response.error);
});
}
function updatePhone(phone) {
accountManagerService.updatePhone(phone).then(function (response) {
if (response.error) {
displayError(response.error);
} else {
$state.go('main.manage.index');
}
}, function (error) {
displayError(response.error);
});
}
function displayError(error) {
toastr.error(error, 'Error');
}
}
})();
这是我的服务。如果需要任何其他信息,请告诉我
(功能(){
以下是我的看法:
form class="form form-vertical" id="new_pass" name="new_pass" ng-submit="new_pass.$valid && vm.updatePassword(vm.password)" novalidate>
<div class="form-group" ng-show="vm.updatePasswordError">
<span class="alert alert-danger col-lg-12">{{vm.updatePasswordError}}</span>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-12">
<label for="currpw" class="control-label">{{'PASSWORD_ENTER_CURRENT' | translate }}</label>
<input id="currpw" class="form-control" title="New Password" required="" type="password" ng-model="vm.password.oldPassword">
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<label for="currpw" class="control-label">{{ 'PASSWORD_ENTER_NEW' | translate }}</label>
<input id="signuppassword" name="signuppassword" type="password" class="form-control" autocomplete="off" required ng-model="vm.password.newPassword" ng-pattern="/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,18}$/" ng-focus="vm.signuperror = '';">
<div class="error_msg" ng-show="new_pass.signuppassword.$error.required && submit">{{ 'PASSWORD_ENTER' | translate }}</div>
<div class="error_msg" ng-show="new_pass.signuppassword.$error.pattern && submit">
{{ 'PASSWORD_ERROR_PATTERN' | translate }}
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-lg-12">
<label for="newpw" class="control-label">{{ 'PASSWORD_ENTER_NEW_CONFIRM' | translate }}</label>
<input id="confirmpassword" name="confirmpassword" type="password" class="form-control" required ng-model="vm.password.confirmpassword" ve-compare-to="vm.password.newPassword" ng-focus="vm.signuperror = '';">
<div class="error_msg" ng-show="new_pass.confirmpassword.$error.required && submit">{{ 'PASSWORD_ENTER_CONFIRM' | translate }}</div>
<div class="error_msg" ng-show="new_pass.confirmpassword.$error.veCompareTo && submit">{{ 'PASSWORD_ERROR_MATCH' | translate }}</div>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-4 col-lg-12 buttonblocks">
<button type="submit" class="btn btn-primary button_dkblue_lg" ng-click="submit=true;">{{ 'UPDATE' | translate }}</button>
</div>
<div class="col-lg-8 col-xs-12 buttonblocks align-right">
<a ui-sref="main.manage.index" class="btn btn-primary button_dkblue_lg">{{ 'CANCEL' | translate }}</a>
</div>
</div>
form class=“form form vertical”id=“new\u pass”name=“new\u pass”ng submit=“new\u pass.$valid&&vm.updatePassword(vm.password)”novalidate>
{{vm.updatePasswordError}}
{{'PASSWORD_ENTER_CURRENT'{124; translate}}
{{'密码_输入_新的|翻译}
{{'密码{输入}翻译}
{{‘密码_错误_模式|翻译}}
{{'密码{输入新密码{确认}
{{'密码_输入_确认|翻译}
{{'密码{错误}匹配{翻译}
{{‘更新’|翻译}
{{‘取消’|翻译}
.far_right{float:right;}
.pwalert{页边距顶端:29px;}
在错误回调中,您有时会使用
response
,而您应该使用error
带有updatePassword
的示例:
function updatePassword(password) {
accountManagerService.updatePassword(password).then(function (response) {
// ...
}, function (error) {
// displayError(response.error); <-- this must be your error:
// there is no response variable in current scope
displayError(error);
});
}
函数更新密码(密码){
accountManagerService.updatePassword(密码)。然后(函数(响应){
// ...
},函数(错误){
//displayError(response.error);错误在哪里抛出?@isherwood它在控制器中的getCustomerInfo和updatePassword上抛出。它不再抛出错误,但我的代码仍然不起作用。我也会将我的观点添加到问题中,但应该发生的是它应该检查当前密码并确保它与当前用户匹配密码。但它并没有这样做,它允许你输入任何东西作为当前密码。
<style>
.far_right{float:right;}
.pwalert { margin-top: 29px;}
function updatePassword(password) {
accountManagerService.updatePassword(password).then(function (response) {
// ...
}, function (error) {
// displayError(response.error); <-- this must be your error:
// there is no response variable in current scope
displayError(error);
});
}