Javascript Angular.js是否将表单作为数据结构?
我想做的事情: 默认情况下,我使用的框架按照约定生成以下类型的输入名称:Javascript Angular.js是否将表单作为数据结构?,javascript,forms,angularjs,Javascript,Forms,Angularjs,我想做的事情: 默认情况下,我使用的框架按照约定生成以下类型的输入名称: name="data[Model][field] 下面是一个“班级有许多学生”的形式结构示例: 我现在的问题是如何让这个结构反映在我的angulars$范围中 我希望相同的结构以某种方式出现在$scope.data或其他类似的内容中: $scope.data: { Class: { name: 'Some Name', }, Student: [ {
name="data[Model][field]
下面是一个“班级有许多学生”的形式结构示例:
我现在的问题是如何让这个结构反映在我的angulars$范围中
我希望相同的结构以某种方式出现在$scope.data或其他类似的内容中:
$scope.data: {
Class: {
name: 'Some Name',
},
Student: [
{
name: 'Some Name'
},
/* ... */
]
}
我所尝试的:
我试着给表单命名为“data”,因为我在某个地方读到它作为另一个作用域,字段将出现在该作用域中。之后,我尝试对每个字段使用ng model=“data.model.field”
。我能得到的最好结果是这样一个对象(从控制台复制):
我想这是angular表单处理程序(?),我也检查了文档,但我不知道如何通过它访问表单数据,也不知道如何将其转换为我想要的结构
另外,我在angular中发现的每个表单处理示例都是不同的,似乎有一千种不同的方法来处理表单。我想我迷路了
- 那么有可能做我想做的吗
- 我想要的东西有意义吗
- 如果是:我怎么做
- 如果不是:如何最好地处理表单
$scope.data = {};
<form>
<input ng-model='data.Class.name'/>
<input ng-repeat='student in data.Student' ng-model='student.name'/>
<input type='submit'/>
</form>
$scope.data={};
如果您使用的是Chrome,您可以安装Batarang(angularjs调试器)来检查浏览器中的作用域值,但不准确。是否无法将整个表单数据直接从表单自动读取到范围中(我已经扩展了frameworks form helper以注入ng模型,但是如果我能用一个简单的方法调用或至少一行代码简单地处理整个表单数据,我将不胜感激。
Jc { $error={...}, $name="formData", $dirty=false, more...}
$scope.data = {};
<form>
<input ng-model='data.Class.name'/>
<input ng-repeat='student in data.Student' ng-model='student.name'/>
<input type='submit'/>
</form>