以角度形式设置选项到目前为止没有问题。
模板定义:
formlyConfig.setType({
name: 'myType',
template: '<div myType ng-model="model[options.key]" theme="to.theme" size="to.size"></div>',
});
在控制器中,我可以调用我的新myType
:
{
key: 'myType',
type: 'myType',
templateOptions: {
theme: 'light',
size: 'normal'
}
},
但现在我想将模板选项theme
和size
设置为可选,这样就不必记下它们了。然后在app.config
中设置两者的“默认”值。
我想出了这个:
formlyConfig.setType({
name: 'myType',
template: '<div myType ng-model="model[options.key]" {{to.theme ? \'theme="to.theme"\' : \'\'}} {{to.size ? \'size="to.size"\' : \'\'}} ></div>',
});
但不幸的是,这也不起作用。
当我在控制器中删除这样的选项时:
{
key: 'myType',
type: 'myType',
templateOptions: {
theme: 'light'
}
},
我的默认值没有加载,除非我还删除模板中的size
部分,如下所示:
formlyConfig.setType({
name: 'myType',
template: '<div myType ng-model="model[options.key]" {{to.theme ? \'theme="to.theme"\' : \'\'}} ></div>',
});
所以我认为我的想法如何设置模板选项是可选的是错误的 但是我怎么能这样做呢?
感谢您的帮助。
修改
当然还有来自角度的ng-attr
。但遗憾的是,这也不能作为模板:
<div myType ng-model="model[options.key]" ng-attr-size="to.size || undefined" ></div>
或
<div myType ng-model="model[options.key]" ng-attr-size="to.size ? to.size : undefined" ></div>