2016-04-28 50 views
1

我是新角形formly。我想为按钮创建一个自定义模板。下面给出的代码snippten以供参考。角形formly按钮自定义类型

<script type="text/ng-template" id="button.html"> 
    <md-button class={{to.class}} ng-click={{to.method}}>{{to.label}}</md-button> 
</script> 

问题是formly给我一个错误在处理NG-点击指令,因为指令{{to.method}}尚未评估。

难道不可以这样做吗?这些棱角分明的例子都没有将按钮作为模板,在形式上做这件事在概念上是错误的吗?

编辑:

下面是相应的自定义模板和JSON:

我创建了一个自定义模板的按钮:

<script type="text/ng-template" id="button.html"> 
    <md-button class={{to.class}} ng-click="{{to.method}}">{{to.label}}</md-button> 
</script> 

和相应的JSON是:

{ 
type: 'button', 
templateOptions: { 
    label: 'Create Item', 
    class: 'md-raised md-primary', 
    method: 'createItem' 
} 

具体错误如下:

Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{to.method}}] starting at [{to.method}}].

+1

您在哪里定义了“to”对象。发布完整的代码。如果可能的话发布一些小提琴链接,以便为您的问题获得更快的结果。 –

+0

@StarkButtowski我在问题中添加了代码。请检查一下。 – Rohit

回答

1

我有类似的问题,这是我做了什么来解决它。发布可能有相同问题的其他人,因为按钮上的文档似乎很少。

注:您不需要对角属性

设置类型大括号:

formlyConfig.setType({ 
 
    name: 'button', 
 
    template: '<button class="{{to.class}}" ng-click="to.method()">{{to.label}}</button>' 
 
});

然后在那里你将它添加到您的表格:

{ 
 
    key: 'myBtn', 
 
    type: 'button', 
 
    templateOptions: { 
 
    class: 'btn-primary', 
 
    label: 'My Test Button', 
 
    method: function() { 
 
    alert('test'); 
 
    console.log('test'); 
 
    } 
 
    } 
 
}

干杯!

+0

如何将新类型整合到我的代码中? 即formlyConfig.setType ..... –