1

我正在尝试编写一个自定义的正式模板来使用 ng-tags-input:

angular.module('myMod').run(function(formlyConfig) {
    formlyConfig.setType({
        name:'tag',
        template:"<label class='control-label' ng-if='to.label'>{{to.label}}</label>" +
        "<tags-input ng-model='model[options.key]' ng-attr-placeholder='{{to.placeholder}}'>" +
        "<auto-complete source='{{to.tags}}'></auto-complete></tags-input>"
                        ^^^^^^^^^^^^^^^^^^^
    });
})

其中to.tags指的是formly模板的templateOptions:

            templateOptions: {
                tags: 'dataModel.getProductTags()'

在这种情况下使用双括号会导致 $parse 错误。如何source从 的内容中间接填充该属性to.tags

我也试过ng-attr-source='to.tags'了,没有运气。

我怀疑我只是没有想到一些明显的事情。如果简单和明智,请包括相关参考资料。

4

1 回答 1

3

解决方案是将函数而不是函数的名称放在 templateOptions 中,如下所示:

            templateOptions: {
                tags: dataModel.getProductTags

在模板中,只需调用它:

<auto-complete source='to.tags()'>

这要求函数本身必须可以从表单模板访问,但在我的情况下这不是问题。

于 2015-08-04T15:01:55.263 回答