ngclick中的角度表达式没有评估

时间:2015-08-07 14:47:57

标签: angularjs

我有一个非常简单的问题。

我有一个带有按钮的表单,将其作为对象传递给控制器​​。一切都工作得很好,但当前的名称(当前通过它)不能保持动态,因为我有多个标签,并且多个表格的名称不能相同。

所以问题。现在起名,工作:

<form name="form" novalidate>
...
<button ... ng-click="Tab.validate.validate(form)">

不起作用的所需变体:

<form name="{{'form_' + tab.name}}" novalidate>
...
<button ... ng-click="Tab.validate({{'form_' + tab.name}})">

在这种情况下,表单名称是正确的&#39; form_tabName&#39;。我将这个表达式语法用于id和许多其他名称元素,以便在我的代码中对它们进行预先或后缀,因此我的ngclick方面我想改变。

错误:

错误:[$ parse:syntax]语法错误:令牌&#39; {&#39;表达式[Tab.validate(&#39;表单_&#39; + {{tab.name}})]第37列的无效键,从[{tab.name}})开始。]

2 个答案:

答案 0 :(得分:2)

此处的问题不是obj.resolve()属性,而是name指令属性。 ng-click采用JavaScript表达式,而不是Angular模板标记(ng-click)。试试这个:

{{}}

答案 1 :(得分:0)

这是一个快速解决方案

  <form name="forms.form_{{tab.name}}">
    <button ng-click="Tab.validate(forms['form_'+tab.name])"></button>
  </form>

这实际上有效(请参阅此plunker

使用子对象(forms.xxx),您可以使用类似于数组forms['form_'+tab.name]

的字符串来访问它

希望它有所帮助。