我正在尝试编写一个自定义格式模板来使用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
指的是正式模板的templateOptions:
templateOptions: {
tags: 'dataModel.getProductTags()'
在此上下文中使用双括号会导致$parse错误。如何从to.tags
的内容间接填充 source
属性?
我也试过ng-attr-source='to.tags'
,没有运气。
我怀疑我只是没有想到一些明显的东西。在方便和合理的情况下,请附上相关的参考资料。
解决方案是将函数,而不是函数的名称,放在templateOptions中,如下所示:
templateOptions: {
tags: dataModel.getProductTags
,在模板中,只需调用它:
<auto-complete source='to.tags()'>
这要求函数本身必须可以从形式模板访问,但在我的情况下,这不是问题。