将方法定义作为String传递时出错:[$ parse:syntax]

时间:2015-03-23 14:33:33

标签: angularjs

我正在使用AngularJS开展项目。我想要做的是在我的控制器上编写我的方法的定义,并将其作为字符串传递,即使在客户端也可以点击执行:

以下是我正在尝试做的一个例子:

我的控制器:

$scope.myMethod = "add({'a':3,'b':4})";
add (o)
{
 return o.a+o.b; 
}

我的HTML页面:

<button ng-click={{ myMethod }} ></button>

但我一直得到错误:[$ parse:syntax]。

你能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:1)

绑定将插入整个字符串:

"content" 

也就是说,它插入“inline,因为属性值也被”括起来,所以插入的“过早地结束了值表达式。呈现的HTML看起来像这样:

ng-click=""add({'a':3,'b':4})""

用'保护绑定,像这样:

ng-click="'{{myMethod}}'"

我不同意您在HTML中插入方法的方式,我也不确定它是否有效,但上述内容将修复$ parse错误。