【发布时间】:2016-12-11 22:33:26
【问题描述】:
使用Angular Formly 我设置了以下控制器和模板。我让控制器打印用户在所有字段中输入的值,除了用户没有触及的值。这意味着如果用户根本没有在字段中写入任何内容,则该字段不包括在内。虽然如果用户输入内容然后删除它,该字段将包含在一个空字符串中。
如何包含用户未触及的字段?
// fooController.js
vm.fooModel= {};
vm.fooFields = [
{
key: 'foo',
type: 'input'
templateOptions: {
label: 'Foo',
placeholder: 'Foo'
}
}
];
vm.onSubmit = function() {
console.log(vm.fooModel)
}
// fooTemplate.html
<form ng-submit="vm.onSubmit()" novalidate>
<formly-form model="vm.fooModel" fields="vm.fooFields"></formly-form>
<button type="submit" class="btn btn-info submit-button">Submit</button>
</form>
我不希望将空字符串设置为每个字段的默认值。
一个简单的例子可以找到here
【问题讨论】:
-
我不知道这个模块,但是我快速阅读我所做的文档得到的是:你必须使用 defaultValue。
-
这是正常的行为;如果您需要像“”这样的默认值(不为空),只需在提交函数顶部添加一个 foreach 即可获取所有空值广告分配“”。
-
@MrPk 你会怎么写那个foreach?你会遍历什么列表?
-
将表单的id传递给提交函数并获取所有子项。使用 Angular 也可以获得 vm.fooFields (它知道你在提交什么),但我对 Angular 有点慢,我没有时间测试这就是为什么我只有一个评论
标签: javascript html angularjs forms angular-formly