2013-09-07 5 views
0

Я пытаюсь использовать ngclick для навигации, но по какой-то причине, когда я использую выражение внутри ngclick, метод не запускается.ngclick с выражением в ngrepeat не работает

код из шаблона, который не работает идти:

<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); 
}; 

Я надеюсь, кто-то может указать, где это происходит неправильно.

ответ

3

Вам не нужно использовать разделители при указании аргументов на основе переменных для ng-click; это должно работать:

<li ng-repeat = "li in list.items" ng-click="go('/' + li.id)"> 

Но на самом деле я бы предпочел, что / код включен добавляя слева в go функции - или просто создать еще одну функцию, goToRoot, с этой функциональностью. Таким образом, будет легче изменить, если ваш базовый путь будет изменен, во-первых, и это упростит шаблон, во-вторых.

1

просто используйте следующее: ngclick не требует шаблонов

ng-click="go('/'+li.id)" 
Смежные вопросы