当以下代码中的模型中没有点(。)时,角度验证正在运行...
<div class="form-group">
<label for="title">Post Title</label>
<input ng-model="new_title" class="form-control" name="new_title" type="text" required/>
<p class="error" ng-show="addForm.new_title.$touched && addForm.new_title.$invalid">This field is required</p>
</div>
但是当我在下面的代码中使用ng-model="new.title"
时,它无效...
<div class="form-group">
<label for="title">Post Title</label>
<input ng-model="new.title" class="form-control" name="new.title" type="text" required/>
<p class="error" ng-show="addForm.new_title.$touched && addForm.new.title.$invalid">This field is required</p>
</div>
以下是我在控制器中使用new
的内容
$scope.submit = function(){
var request = CRUD.create($scope.new);
request.success(function(response){
$scope.flash = response.status;
});
};
帮助将不胜感激
答案 0 :(得分:2)
您不应该随模型更改名称。
<div class="form-group">
<label for="title">Post Title</label>
<input ng-model="new.title" class="form-control" name="new_title" type="text" required/>
<p class="error" ng-show="addForm.new_title.$touched && addForm.new_title.$invalid">This field is required</p>
</div>
它应该是这样的。
验证不会检查您的模型。它使用name
属性检查绑定范围的表单模型。因此,在检查错误时,您可以使用表单的name
属性和输入。您只需将输入的名称从new.title
更改为new_title
。
答案 1 :(得分:1)
您不能在变量名中使用点(.)
。您应该使用_
或camel-case
来声明变量,如:
new_title
或newTitle
如果要使用点(.)
表示法,请使用
var info = {
title: "your title"
}
然后你可以使用像
<input ng-model="info.title" class="form-control" name="info.title" type="text" required/>
但您无法使用new
作为变量名称。 new
是保留关键字