角度值绑定发送到ng-click函数而不是值

时间:2015-03-28 16:15:40

标签: javascript jquery angularjs binding

我在HTML中有一个处理程序链接:

<div class="menu-item" ng-repeat="pageName in pages">
    <a ng-click="routing.open('{{pageName}}')">{{pageName}}</a>
</div>

它在自制的Angular-UI Routing Factory / helper中触发'open'函数,并将'pageName'作为参数发送。 open方法检查是否存在用于加载视图的处理程序或状态。

var availableStates = $state.get();
    if (!pages[name] || availableStates.indexOf(name) === -1) {
        alert("State or Loader for state: '{0}' does not exist!".format(name));
        return;
    }

点击后,警告会显示以下消息: enter image description here

但是当我查看Web控制台时,该值已正确设置。 enter image description here

我可以使用一些帮助,导致这种行为的原因以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您不应在ng表达式中使用{{}}。替换

ng-click="routing.open('{{pageName}}')">

ng-click="routing.open(pageName)">

原因是你应该考虑所有专门的&#34; ng-like&#34;表达式已经包含在{{}}中,因为它们已经被评估为角度表达式。当你想告诉angular你想要将双括号中包含的内容评估为角度表达式时,你应该只使用{{}}。