AngularJS将值传递给查询API

时间:2015-10-16 06:56:11

标签: javascript angularjs api

我所拥有的ID值是我想要附加到URL以查询API中的正确对象

HTML:

<div ng-init="tileID = '38'"></div>

控制器:

app.controller('appCtrl',['$scope', '$http', 'ImageTiles', function($scope, $http, ImageTiles){

$scope.$watch('tileID', function(){
  console.log($scope.tileID);
  $scope.get = function(tileID){
    ImageTiles.get({id: tileID}, function(data){
    })
  }
});
}]);

工厂

app.factory('ImageTiles', ['$resource', function ($resource) {
  return $resource('http://api/v1/tiles/:id', {
  id: "@id"
},
{
'query': {
  method: 'GET',
  isArray: false
}
});
}]);

示例:

在HTML中我的值为38,总是手动输入。然后想要获取该值(38)并创建http://api/v1/tiles/38的URL以恢复对象的数据API上的ID为38。

我可以获取ID值,但不知道如何传递它并调用API。

4 个答案:

答案 0 :(得分:0)

在使用它之前,确实没有必要使用你的$资源,将它包装在get函数中,只需直接调用它:

app.controller('appCtrl',['$scope', '$http', 'ImageTiles', function($scope, $http, ImageTiles){

$scope.$watch('tileID', function(){
   console.log($scope.tileID);
   ImageTiles.get({id: $scope.tileID}).$promise.then(function(tile) {
      $scope.tile = tile;
    });


});
}]);

答案 1 :(得分:0)

它似乎只是Angular Application的基本框架。要提供实际的路由机制,您必须修改app.js文件以配置不同的路由。

请参阅以下示例代码:

config(['$routeProvider', function($routeProvider) {
  $routeProvider.
    when("/Apps", {templateUrl: "partials/App.html", controller: "driversController"}).
    when("/App/:id", {templateUrl: "partials/App.html", controller: "appCtrl"}).
    otherwise({redirectTo: '/App'});
}]);

答案 2 :(得分:0)

我看起来像

 // Get 
$http.get("http://api/v1/tiles/"+ tileID)
.success(function (response) {
   // Do somthing
});

希望它可以帮助你

答案 3 :(得分:0)

在手表中,您可以指定参数newValue和oldValue,并使用newValue调用您的API。

app.controller('appCtrl',['$scope', '$http', 'ImageTiles', function($scope, $http, ImageTiles){

    $scope.$watch('tileID', function(newValue, oldValue){
        console.log(newValue);            
        ImageTiles.get({id: newValue}, function(data){
            console.log(data);
        });

    });
}]);