2014-01-17 3 views
0

У меня есть 2 переменные wkidx и dyidxсинтаксис выражения в нг щелкните

Я пытаюсь создать несколько collapseable элементов на одной странице с помощью директивы угловую щ самозагрузки и у меня есть следующий элемент

<a 
    href="" 
    class="" 
    ng-click="isCollapsed{{wkidx}}{{dyidx}} = !isCollapsed{{wkidx}}{{dyidx}}"> 
    Blah 
</a> 

теперь это выводит то, что я хочу, чтобы в йот (т.е. он добавляет переменные значения iscollapsed), но я получаю ошибку синтаксиса как так

Syntax Error 
error in component $parse 
Syntax Error: Token 'wkidx' is at column {2} of the expression [{3}] starting at [{4}]. 

Я попытался чтение р возраст, на который ссылается страница с ошибкой, но на самом деле это не сделало меня более ясным. Я пробовал множество вариаций, и они либо не дают ошибки, но не добавляют значения или добавляют значения, но бросают синтаксическую ошибку.

спасибо за помощь здесь, я был на, но я получаю ошибки по вполне понятным причинам

HTML

<div 
    ng-repeat="session in day.sessions" 
    ng-init="ssnidx = $index"> 

    <a 
    href="" 
    class="" 
    ng-click="setCollapsed(!isCollapsed(wkidx, dyidx), wkidx, dyidx)"> 
    </a> 

    <div 
     collapse="I DONT KNOW WHAT SHOULD GO HERE"> 
      <p>hello from the collapsed div</p> 
    </div> 
</div> 

app.js

$scope.setCollapsed = function(value, wkidx, dyidx) { 

    }; 

$scope.isCollapsed = function(wkidx, dyidx) { 
    if (isCollapsed + wkidx + dyidx) { 
     return true; 
    } else { 
     return false; 
    } 
    }; 

ответ

3

Это недействительное выражение для ng-click. Вы бы лучше создать для методов в вашем $scope:

setCollapsed(value, wkidx, dyidx) и isCollapsed(wkidx, dyidx)

function MyController($scope) { 
    $scope.setCollapsed = function(value, wkidx, dyidx) { 
     //... 
    }; 
    $scope.isCollapsed = function(wkidx, dyidx) { 
     //... 
    }; 
} 

<a 
    href="" 
    class="" 
    ng-click="setCollapsed(!isCollapsed(wkidx, dyidx), wkidx, dyidx)> 
    Blah 
</a> 

Предполагая, что wkidx и dyidx являются приписываются к $scope


Отвечая на ваш обновленный вопрос:

<div 
    ng-repeat="session in day.sessions" 
    ng-init="ssnidx = $index"> 

    <a 
    href="" 
    class="" 
    ng-click="setCollapsed(!isCollapsed(wkidx, dyidx), wkidx, dyidx)"> 
    </a> 

    <div 
     ng-show="isCollaspsed(wkidx, dyidx)"> 
      <p>hello from the collapsed div</p> 
    </div> 
</div> 
+0

Хорошо, я понимаю, что это не является допустимым выражением для нг-клик вы возражаете расширение на ваше решение немного больше, хотя? Вы хотите создать два метода для установки значения в контроллере? Я смущен, как это сделать извините – Ir1sh

+0

@ Ir1sh Да, я хочу создать эти методы в вашем контроллере. –

+0

и вернуть им правильную строку? Как вы гарантируете, что они будут вызваны, как только будет создан элемент ? – Ir1sh

Смежные вопросы