2015-12-12 4 views
1

У меня есть функция в угловой:начать угловую функцию без щелчка?

$scope.getSessionsForSpeaker = function (id) { 
    $scope.id = id; 
    $scope.getAll = SessionService.getAll(); 
    $scope.sessionsFound = []; 
    $scope.getAll.$promise.then(function(data) { 
     for (var i = 0; i < data.length; i++) { 
      if ([data[i].speakers[0]] == $scope.id) { 
       console.log([data[i].subject]); 
       $scope.sessionsFound += [[data[i].subject] + ", "]; 
      } 
     } 
    }); 
}; 

и из HTML я запустить его, нажав на ссылку:

<a ng-click="getSessionsForSpeaker(speaker.id)"></a> 

Есть ли способ запустить эту функцию без нажатия? Заранее спасибо!!

+3

Просто назовите его - после объявления добавить '$ scope.getSessionsForSpeaker()' –

+0

Что должно быть 'speaker.id' в этом случае? – Rayon

+0

Вы можете сделать много. Вы хотите называть его каким-то событием или кодом? Вы хотите, чтобы он работал, когда работает функция контроллера/ссылки и т. Д.? –

ответ

0

Я нашел решение, которое работало для меня:

<p ng-bind-html="sessionsFound"></p> 

Спасибо всем за вклад!

1

Вы можете запустить его из контроллера, если вы знаете ID:

$scope.getSessionsForSpeaker(id); 

Вы можете использовать ng-init, чтобы запустить его, когда этот элемент нагрузки:

<a ng-init="getSessionsForSpeaker(speaker.id)"></a> 

Вы можете также использовать ng-mouseover, если вы хотите запустить его, когда мышь над этим элементом

<a ng-mouseover="getSessionsForSpeaker(speaker.id)"></a> 

Все зависит от того, когда вы хотите запустить его.

+0

Какой смысл в создании метода $ scope, если данная функция будет работать только в функции конструктора и не будет отображаться как свойство модели представления? –

+2

Он может запускать его из любого места, где ему нравится, я понятия не имею, как он хочет его запустить, поэтому я представил ему все возможные варианты. – AlexD

+0

Вы правы, что вопрос довольно расплывчатый ... –

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