ng ng with ng repeat中的表达式不起作用

时间:2013-09-07 21:44:04

标签: angularjs

我正在尝试使用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);
};

我希望有人可以指出哪里出错了。

2 个答案:

答案 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)"