我有一个非常简单的问题。
我有一个带有按钮的表单,将其作为对象传递给控制器。一切都工作得很好,但当前的名称(当前通过它)不能保持动态,因为我有多个标签,并且多个表格的名称不能相同。
所以问题。现在起名,工作:
<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}})开始。]
答案 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]
希望它有所帮助。