我在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;
}
点击后,警告会显示以下消息:
但是当我查看Web控制台时,该值已正确设置。
我可以使用一些帮助,导致这种行为的原因以及如何解决这个问题?
答案 0 :(得分:2)
您不应在ng表达式中使用{{}}。替换
ng-click="routing.open('{{pageName}}')">
带
ng-click="routing.open(pageName)">
原因是你应该考虑所有专门的&#34; ng-like&#34;表达式已经包含在{{}}中,因为它们已经被评估为角度表达式。当你想告诉angular你想要将双括号中包含的内容评估为角度表达式时,你应该只使用{{}}。