2015-02-10 123 views
0

我想在有人忘记输入组名时显示错误消息。所以我为输入标签创建了一个group.name模型。调用createGroup函数时(在提交表单时)检查条件。但它给 “TypeError:读取名称属性时,无法读取未定义的属性”名称“”。TypeError:无法读取angularJS中未定义的属性“名称”

  <form name="serverGroup" role="form" ng-model="group" ng-submit="createGroup(group)"> 
       <div class="form-group createGrpField"> 
        <label for="groupname" class="nameField">Name</label> 
        <input id="nameField" type="text" ng-model="group.name" class="form-control" placeholder="Enter group name" /> 
       </div> 

       <div class="createServerPadding"> 
        <button id="saveBtn" class="btn btn-default btn-primary" type="submit">Save</button> 
        <button class="btn btn-default" type="cancel">Cancel</button> 
       </div> 
      </form> 

控制器

$scope.createGroup = function(group) { 
     selectedRows = $scope.gridApi.selection.getSelectedRows(); 

     $scope.emptyName = false 
     $scope.selectServer = false; 

     if (!group.name || !group) { 
      console.log("group", group); 
      $scope.emptyName = true; 
      $scope.selectServer = false; 
     } 
    } 
+0

是它发生每一次?你是否尝试填写表格并提交? – 2015-02-10 10:39:54

+3

为什么'ng-model =“group”'在窗体上? – 2015-02-10 10:41:18

+1

if块中的条件是错误的顺序。首先检查“组”。 – 2015-02-10 10:42:28

回答

1

使用angular.isDefined();检查是否该范围中定义,或者没有在这里是DOC

if (angular.isDefined(group) && group.hasOwnProperty('name')) { 
    console.log("group", group); 
    $scope.emptyName = true; 
    $scope.selectServer = false; 
} 
相关问题