请参阅代码here
它是一种角形式,变量form
应为FormController。正如您在使用form.$pristine
时所看到的那样,$pristine
中存在变量form
,但是当我尝试<pre>form = {{form}}</pre>
时,它为什么不输出。我希望看到所有成员(如果可能的话是函数名,或者至少是所有基元,如$dirty
,$valid
等)为什么它不在pre
标签中输出,怎么能我给他们看?它主要用于调试,但也很好奇。
<form novalidate name="form" class="simple-form">
Name: <input type="text" ng-model="user.name" /><br />
E-mail: <input type="email" ng-model="user.email" /><br />
Gender: <input type="radio" ng-model="user.gender" value="male" />male
<input type="radio" ng-model="user.gender" value="female" />female<br />
<button ng-click="reset()">RESET</button>
<button ng-click="update(user)">SAVE</button>
</form>
<pre>pristine = {{form.$pristine}}</pre>
<pre>form = {{form}}</pre>
pristine = true
form = {}
答案 0 :(得分:2)
这样的表达式:{{form}}
会将表单对象转换为字符串。 Angular使用angular.toJson
函数中的构建来序列化对象。请查看文档:{{3}}。如您所见,所有带有前导$
的属性都会被删除。
如何解决您的问题:
您可以使用JSON.stringify函数获取所有属性。因为您无法在表达式中调用此函数,所以需要在控制器中提供辅助函数:
$scope.stringify = function(obj){
return JSON.stringify(obj);
}
现在,您可以在视图中输出完整的表单对象:
{{stringify(form)}}
答案 1 :(得分:0)
以下内容也应该有效......
<pre>form = {{form | json}}</pre>