1
我有一个HTML模板是这样的:AngularJS - 找到所有ngModel在当前范围内
<div ng-controller="MyCtrl">
<input ng-model="model.name" /> {{model.addr}}
<button ng-click="detect()">detect</button>
</div>
这是控制器:
function MyCtrl($scope) {
$scope.detect = function() {
var fields = []; //['model.name', 'model.addr']
//call server with selected fields
}
}
模板可以由用户定制,动态生成,而不是静态模板。我想优化从服务器返回的数据模型,只返回模板中所需字段的值。这个想法是我想从模板中获取所有的ng-model字段并将它们传递给服务器。返回的数据将只包含值这些字段,而不是整个数据模型,例如:
{
name: 'Superhero',
addr: 'Mars'
}
如果我改变这样的模板(删除model.addr):
<div ng-controller="MyCtrl">
<input ng-model="model.name" />
<button ng-click="detect()">detect</button>
</div>
字段阵列应该['model.name']
并从服务器返回的数据应该是:
{
name: 'Superhero'
}
有什么方法可以让范围内的所有NG-示范田? 谢谢!
在角度模型和数据应该映射或让说应该连接。你不能通过标签来选择元素,比如在jQuery中。即使你用jQuery来做这件事,它也会是不正确的角度,并会导致其他困难,比如模型不会在以后更新。你在建造一个表单生成器吗? – astroanu
@astro是的,我正在建造一个表单构建器。 – Arnol
好的,那么你需要做的是把你的每一个表单当作一个指令,并将你从服务器获得的表单构建器的输入对象解析为指令,并相应地更新你提交的模式。看看这个项目他是如何做到的https://github.com/Textalk/angular-schema-form和https://github.com/danhunsaker/angular-dynamic-forms有点难以解释堆栈溢出 – astroanu