角度形式模板选项可选

时间:2017-09-25 09:10:04

标签: angularjs angular-formly

以角度形式设置选项到目前为止没有问题。

模板定义:

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'
    }
},

但现在我想将模板选项themesize设置为可选,这样就不必记下它们了。然后在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>

0 个答案:

没有答案