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