Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS未捕获引用错误:未定义响应_Javascript_Angularjs - Fatal编程技术网

Javascript AngularJS未捕获引用错误:未定义响应

Javascript AngularJS未捕获引用错误:未定义响应,javascript,angularjs,Javascript,Angularjs,嗨,我是AngularJS的新手。我试图调试其他人的代码,但收到一条错误消息,我不知道如何修复。错误消息为未捕获引用错误:未定义响应。这是我的控制器: (function () { angular .module('vidaexpress') .controller('accountManagerController', accountManagerController); accountManagerController.$inject = ['$state', 'acco

嗨,我是AngularJS的新手。我试图调试其他人的代码,但收到一条错误消息,我不知道如何修复。错误消息为未捕获引用错误:未定义响应。这是我的控制器:

(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);
    });
}