【发布时间】:2015-04-10 08:37:27
【问题描述】:
当有人忘记输入组名时,我想显示一条错误消息。所以我为输入标签创建了一个 group.name 模型。调用 createGroup 函数时检查条件(提交表单时)。但它给 “TypeError: Cannot read property 'name' of undefined”在读取名称属性时。
<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;
}
}
【问题讨论】:
-
每次都会出现吗?您是否尝试填写表格并提交?
-
为什么
ng-model="group"在表单上? -
if 块中的条件顺序错误。首先检查
group。 -
你应该改变 if (!group || !group.name) { 其他方式没有意义的顺序。
标签: javascript angularjs