2015-11-15 4 views
0

У меня есть контроллер (называемый searchCtrl), который выполняет запрос к службе, а затем вставляет данные из этой службы в область под названием movieList.Устанавливает функцию в контроллере через другой контроллер

затем отобразить содержимое сферы movieList через нг-повтор в шаблоне,

%li.search_results{"ng-repeat" => "movie in movieList'"} 

    .addmovie{"ng-click" => "addMovie()"} 
    %span 
     Add Movie 
    %span.title 
    {{ movie.original_title }} 

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

Проблема в том, что я хочу разделить функцию поиска и функцию addMovie в разных контроллерах. Это означает, что функция addMovie() находится в контроллере addMovies.

Итак, когда я нажимаю на div .addmovie и запускаю функцию addMovie(), она ничего не делает. Поэтому мне интересно, можно ли подключиться к функции addMovie() внутри контроллера addMovies через контроллер searchCtrl.

ответ

0

Вам необходимо переместить функцию addMovie() в службу. Таким образом, любой контроллер может получить к нему доступ, просто введя службу в контроллер.

app.service("movieService",function() { 

    this.addMovie = function() { 
     //stuff 
    } 
}); 

Тогда вы ввели бы службу в контроллер, как это:

app.controller("searchCtrl",function($scope, movieService) { 
    //call it here 
    movieService.addMovie(); 
}); 
Смежные вопросы