it-roy-ru.com

AngularJS нг-клик с переключением данных

У меня есть элемент списка, который переключает модальное значение и устанавливает параметр, используя ng-click, проблема в том, что при вызове функции в любом другом месте, которое регистрирует Course.SelectedCourse, оно не определено, хотя Course.ID имеет значение.

<li class="facebook" style="width:33%;">
   <a ng-click="Course.SelectedCourse = Course.ID" data-toggle="modal" data-target="#myModal">
      <span class="glyphicon glyphicon-user"></span>
   </a>
</li>
5
JenuRudan

Используйте функцию в контроллере, это может выглядеть так:

По мнению:

<li class="facebook" style="width:33%;" >
  <a ng-click="setSelectedCourse(Course.ID)" data-toggle="modal" data-target="#myModal">
    <span class="glyphicon glyphicon-user"></span>
  </a>
</li>

В контроллере

function setSelectedCourse(course_id){
  $scope.Course.SelectedCourse = course_id;
}
4
ignacio chiazzo

В AngularJS директивы имеют собственную область видимости, ваш список генерируется с помощью ng-repeat, не так ли? Вот почему

"Course.SelectedCourse = Course.ID" 

не работает, потому что внутри div ng-repeat цикл $ scope.Course создается локально и не совпадает с тем, что есть в вашем главном контроллере. Кроме того, функции из основного контроллера могут вызываться директивами, поэтому предыдущий ответ работает.

1
psyked