通过另一个控制器访问控制器中的功能

时间:2015-11-15 22:02:04

标签: angularjs

我有一个控制器(称为searchCtrl),它向服务发出请求,然后将该服务中的数据插入到名为movieList的范围内。

然后我通过模板中的ng-repeat显示范围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的控制器中。

因此,当我点击.addmovie div并激活addMovie()函数时,它不会执行任何操作。所以我想知道是否可以通过addMovie()控制器与addMovies控制器内的searchCtrl函数建立连接。

1 个答案:

答案 0 :(得分:0)

您需要将addMovie()函数移动到服务中。这样,任何控制器都可以通过将服务注入控制器来访问它。

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

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

然后你会将服务注入你的控制器,如下所示:

app.controller("searchCtrl",function($scope, movieService) {
    //call it here
    movieService.addMovie();
});
相关问题