如果我有以下内容:
<form
id="registration"
name="registration"
method="POST"
>
<input
type="text"
name="first_name"
id="first-name"
ng-model="registration.first_name"
placeholder="First name"
/>
当我的表单显示时,上面配置的字段最终会在其中包含[Object object]
作为初始值。
我在这里做错了什么,以及在表单内部进行双向绑定的正确方法是什么?
答案 0 :(得分:24)
在表单上设置name
属性会创建一个范围对象useful for validation,但不能用于输入的ng-model
属性。
如果为ng-model使用单独的范围变量,它将按预期工作:
<form
...
name="reg"
...
>
<input
...
ng-model="registration.first_name"
...
/>
答案 1 :(得分:1)
我猜注册范围未初始化或者registration.first_name是对象。
看看这个plunker:http://plnkr.co/edit/bdbs0XVB8hZSodOTYyM4?p=preview
在控制器中或使用ng-init ng-init="registration = {}"
如果registration.first_name是一个对象,那么它将显示为[Object object]
。您必须提供正确的字符串值作为模型到ng-model
答案 2 :(得分:0)
Angularjs Form在表单字段中加载显示[object Object]
我猜,只有当您的表单名称和ng-model名称(值)相同时,它才会显示此错误
like
<form name="userform">-------
<input ng-model="userform.firstname">
将表单名称或ng-model 值更改为用户或某些xyz
答案 3 :(得分:0)
如果您未在ng-controller中注册控制器,则可以删除name =&#34; registration&#34;从表单,因为控制器有表单的init,我尝试工作。
plnkr.co/edit/JK3utpe1eERrJeoveaCQ?p=preview