角形按钮自定义类型

时间:2016-04-28 06:29:35

标签: javascript angularjs angular-material angular-formly

我是个新角色。我想为按钮创建自定义模板。代码snippten在下面给出以供参考。

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

问题是在处理ng-click指令时形成错误,因为指令{{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'
}

确切错误如下:

  

错误:[$ parse:syntax]语法错误:令牌&#39; {&#39;表达式[{{to.method}}]第2列的无效键,从[{to.method}}开始。

1 个答案:

答案 0 :(得分:2)

我遇到了类似的问题,这就是我要解决的问题。发布可能具有相同问题的其他人,因为关于按钮的文档似乎很少。

注意:您不需要角度属性上的花括号

设置类型:

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

然后,您将其添加到表单中

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

干杯!