3

我一直在考虑使用 Angular Schema Form 来为我的项目定义所有表单,但对我来说非常突出的一件事是,当我们定义一个选择/下拉元素时,必须在其中指定值JSON。这并不像我希望从我的 Angular 控制器/工厂检索这些值那样灵活,因为它们目前在范围内可用。

我已经做了很多关于如何解决这个问题的搜索,但还没有找到明确的解决方案或任何对我有用的东西,所以我决定尝试自己扩展 Select 并将映射添加到schemaFormDecoratorsProvider.

我遵循了Extending Schema Form的文档,现在有一个 HTML 片段定义了我的 Select 控件,当我在我的 JSON 模式中定义它时,它正在呈现。我想要做的是通过 JSON 模式部分地指定 ng-options 属性。我试图这样做,但似乎没有任何结果会导致呈现选择选项。

这是我的选择控件的一部分:

<select ng-model="$$value$$"
    ng-model-options="form.ngModelOptions"
    sf-changed="form"
    schema-validate="form"
    ng-options="item.value as item.name for item in form.titleMap"
    ng-disabled="form.readonly">
</select>

在定义 ng-options 的地方,我希望能够在我的 JSON 中指定 titleMap 并将其解析为我范围内的一个对象,或者我可以在我的 JSON 中传递集合的名称,然后将其传递到form.titleMap当前所在的位置。

有人有这样做的经验吗?对我来说,这似乎是一个相当合理的要求,但在网上找不到太多关于它的帮助。

非常感谢。

4

1 回答 1

2

有旨在支持动态数据选择的附加组件,该库没有偏好,让开发人员选择最适合他们需要的,但是我构建了 Material Design 装饰器以包含angular-schema-form的功能-external-options在装饰器中,因此不需要附加组件。bootstrap 装饰器在这个阶段没有这个能力。

angular-schema-form-external-options库是基本的,但涵盖了简单动态下拉数据填充的大多数要求

angular-schema-form-dynamic-select是一个更健壮且功能齐全的选项,具有多种可配置选项。

于 2017-07-18T01:51:31.573 回答