我正在尝试使用ngclick进行导航,但出于某些原因,当我在ngclick中使用表达式时,该方法无法运行。
来自未运行的模板的代码:
<ul id = "{{list.id}}" class = "list" >
<li ng-repeat = "li in list.items" ng-click="go('/{{li.id}}')">
<span>{{li.name}}</span>
</li>
</ul>
来自运行模板的代码:
<ul id = "{{list.id}}" class = "list" >
<li ng-repeat = "li in list.items" ng-click="go('/1')">
<span>{{li.name}}</span>
</li>
</ul>
来自控制器的代码:
$scope.go = function (path) {
alert(path);
//$location.path(path);
};
我希望有人可以指出哪里出错了。
答案 0 :(得分:3)
在为ng-click
指定基于变量的参数时,您不必使用分隔符;这应该有效:
<li ng-repeat = "li in list.items" ng-click="go('/' + li.id)">
但实际上我宁愿将/
前置代码包含在go
函数中 - 或者只是使用该功能创建另一个函数goToRoot
。通过这种方式,如果您的基本路径发生了更改,则可以更容易地进行修改,首先,它会简化模板,第二步。
答案 1 :(得分:1)
使用如下; ngclick不需要模板
ng-click="go('/'+li.id)"