Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用资源填充Angularjs中的范围属性_Javascript_Angularjs_Angular Resource - Fatal编程技术网

Javascript 使用资源填充Angularjs中的范围属性

Javascript 使用资源填充Angularjs中的范围属性,javascript,angularjs,angular-resource,Javascript,Angularjs,Angular Resource,免责声明我来自淘汰赛,所以我在如何做某些事情的思路上有点困难,这就是其中之一 我有一个,用户可以在其中输入电影标题并显示电影列表。我的RESTAPI通过调用http://www.example.com/api/movies?title=matrix。api封装在角度资源模块中 我认为$scope.movies=Movie.query({title:$scope.searchValue})将在任何时候自动更新$scope.searchValue已更改,但它似乎无法以这种方式工作 angular.m

免责声明我来自淘汰赛,所以我在如何做某些事情的思路上有点困难,这就是其中之一

我有一个
,用户可以在其中输入电影标题并显示电影列表。我的RESTAPI通过调用
http://www.example.com/api/movies?title=matrix
。api封装在角度资源模块中

我认为
$scope.movies=Movie.query({title:$scope.searchValue})
将在任何时候自动更新
$scope.searchValue
已更改,但它似乎无法以这种方式工作

angular.module('robotdog.resources', ['ngResource'])
    .factory('Movie', function($resource){
        return $resource('/api/movies/:id');
    });

robotdog.controller('HomeController', function($scope, Movie){
    $scope.movies = Movie.query({ title: $scope.searchValue });

});
为了完整起见,这里是我对这个特定控制器的标记

<input type="text" ng-model="searchValue" placeholder="Search Movie Title"/>
<pre>{{ movies | json }}</pre>

{{电影| json}

在用户在
中输入值后,用搜索结果填充
$scope.movies
的正确方法是什么?

当控制器初始化时,您只调用Movie.query一次。您需要添加一个调用Movie.query的函数,并在searchValue更改时使用该函数:

<input type="text" ng-model="searchValue"/>
<button ng-click="getMovies">Go</button>

机器人狗控制器('HomeController',函数($scope,Movie){
$scope.getMovies=函数(){
$scope.movies=Movie.query({title:$scope.searchValue});
}
});
这将在用户更改输入时(即在按键时)调用您的REST api,因此如果这导致太多RPC,您可能需要添加“搜索”按钮,并仅在点击时发出RPC:

<input type="text" ng-model="searchValue" />
<p ng-repeat="movie in movies | filter: searchValue">{{ movie }}</p>

当控制器初始化时,您只能调用Movie.query一次。您需要添加一个调用Movie.query的函数,并在searchValue更改时使用该函数:

<input type="text" ng-model="searchValue"/>
<button ng-click="getMovies">Go</button>

机器人狗控制器('HomeController',函数($scope,Movie){
$scope.getMovies=函数(){
$scope.movies=Movie.query({title:$scope.searchValue});
}
});
这将在用户更改输入时(即在按键时)调用您的REST api,因此如果这导致太多RPC,您可能需要添加“搜索”按钮,并仅在点击时发出RPC:

<input type="text" ng-model="searchValue" />
<p ng-repeat="movie in movies | filter: searchValue">{{ movie }}</p>
或者您可以尝试:

$scope.movies = Movie.query();
查看小提琴:

或者您可以尝试:

$scope.movies = Movie.query();

查看小提琴:

如果我在输入中键入一个值,然后按enter键,则您是否从服务器获得响应。没有发送任何请求,控制台中也没有收到任何错误消息。如果我在输入中键入一个值并按enter键,则不会发生任何情况。未发送任何请求,并且我在控制台中未收到任何错误消息。FTFY:
Go
FTFY:
Go