在AngularJS / Javascript方法中未定义术语

时间:2015-08-06 09:49:03

标签: angularjs

我有以下输入:

<input type="text" name="name" ng-change="vm.myMethod(term)" ng-minlength="3" ng-model="term" class="form-control" placeholder="Please Enter name or username" aria-describedby="basic-addon1" autofocus>

myMethod的方法如下:

function myMetod(term) {
     if(term.length > 0) {
        return myService.findUsersByTerm(term).then(function (response) {
            ...
    }

如果我在输入中输入了一个名字,然后我删除了最后一个字母,那么它工作得很好,然后我收到错误:

  

错误:术语未定义

为了防止出现此错误,我该怎么办? 非常感谢!

[编辑]

这是我的控制者:

(function() {
'use strict';

angular
    .module('project.management')
    .controller('ManagementController', ManagementController);

ManagementController.$inject = ['$scope', 'searchUserService', ...];

function ManagementController($scope, searchUserService, userService, institutionUserConnectionService) {
    $scope.vm = this; // assumes controllerAs: vm
    var vm = this;
    vm.searchUserService = searchUserService;

    vm.showUserProperties = false;
    vm.searchUsersByTerm = searchUsersByTerm;
    vm.getSelectedUserProperties = getSelectedUserProperties;

    ////////////

    function searchUsersByTerm(term) {
        vm.showUserProperties = false;
        return searchUserService.findUsersByTerm(term).then(function (response) {
            vm.searchResult = response.data;
        }).catch(function () {
            ...
        });

    }

    ...
};

})();

1 个答案:

答案 0 :(得分:0)

将术语定义为

$scope.term; // or this.term 
function myMetod(term) {
 if(term.length > 0) {
    return myService.findUsersByTerm(term).then(function (response) {
        ...
}