如何编写 formly 模板来设置 ng-tags-input 自动完成源?
How to write formly template to set ng-tags-input's auto-complete source?
我正在尝试编写自定义 formly 模板以使用 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 错误。如何从 to.tags
的内容间接填充 source
属性?
我也试过 ng-attr-source='to.tags'
,但没有成功。
我怀疑我只是没有想到一些显而易见的事情。如果简单明了,请附上相关参考资料。
解决方案是将函数而不是函数名称放在 templateOptions 中,如下所示:
templateOptions: {
tags: dataModel.getProductTags
并在模板中调用它:
<auto-complete source='to.tags()'>
这要求函数本身必须可以从 formly 模板访问,但在我的情况下这不是问题。
我正在尝试编写自定义 formly 模板以使用 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 错误。如何从 to.tags
的内容间接填充 source
属性?
我也试过 ng-attr-source='to.tags'
,但没有成功。
我怀疑我只是没有想到一些显而易见的事情。如果简单明了,请附上相关参考资料。
解决方案是将函数而不是函数名称放在 templateOptions 中,如下所示:
templateOptions: {
tags: dataModel.getProductTags
并在模板中调用它:
<auto-complete source='to.tags()'>
这要求函数本身必须可以从 formly 模板访问,但在我的情况下这不是问题。