我想根据动态字段配置呈现一个表单:
$scope.fields = [
{ title: 'Label 1', type: 'text', value: 'value1'},
{ title: 'Label 2', type: 'textarea', value: 'value2'}
];
这应该输出行为如下:
<div>
<label>{{field.title}}<br />
<input type="text" ng-model="field.value"/>
</label>
</div>
<div>
<label>{{field.title}}<br />
<textarea ng-model="field.value" rows="5" cols="50"></textarea>
</label>
</div>
简单的实现是使用if
语句来呈现每个字段类型的模板。但是,由于 Angular 不支持if
语句,我被引导到指令的方向。我的问题是了解数据绑定的工作原理。指令的文档有点密集和理论化。
我已经模拟了我在这里尝试做的一个简单的例子:http: //jsfiddle.net/gunnarlium/aj8G3/4/
问题是表单字段没有绑定到模型,所以 submit() 中的 $scope.fields 没有更新。我怀疑我的指令函数的内容是完全错误的...... :)
展望未来,我还需要支持其他字段类型,如单选按钮、复选框、选择等。