我使用指令将按钮上的文字更改为"请等待","成功"或者"失败"表单提交时。当用户更改字段时,它将恢复为原始值。
我是通过在使用
设置之前存储原始值来实现的{
通常,它工作正常,但使用像
这样的可变按钮文本$formElement.find("button").text();
它失败了,因为我得到了评估的表达式,即翻译了"更新"或翻译"创建",但我需要表达。
所以,我转而在指令的开头,我得到了
<button>{{(entity.id ? "update" : "create") | translate}}</button>
那没关系,但我怎么评价呢?我试过了
{(entity.id ? "update" : "create") | translate}}
但它会导致
angular.js:13236错误:[$ parse:syntax]语法错误:令牌&#39; {&#39;表达式[{{(entity.id?&#34; update&#34;:&#34; create&#34;)|的第2列的无效键翻译}}]从[{(entity.id?&#34; update&#34;:&#34; create&#34;)|开始翻译}}]。
我可以剥掉大括号,但是 $parse(buttonText)
这样的表达式会变得更复杂,所以唯一干净的方法是使用angularjs使用的方法。但它是什么?
我也想处理Add {{item}} to {{list}}
,所以我的指示是通用的。
答案 0 :(得分:0)
整个问题混淆了$parse
和$interpolate
。所以解决方案就是
var buttonText = button.text();
开头和
button.text($interpolate(buttonText)($scope));
恢复它。