2015-10-16 111 views
0

我已經是我要追加到URL查詢正確的對象的APIAngularJS傳遞值查詢API

HTML中的ID值:

<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。

回答

0

真的沒有必要消耗它,通過在得到函數進行包裝之前,你的$資源的發揮,乾脆直接把它叫做:

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; 
    }); 


}); 
}]); 
+0

這正是我在找的東西,非常感謝你:)。過了漫長的傍晚,我無法想象如何把這個價值傳遞下去。 –

0

這似乎只是一個基本骨架的角Application.To提供實際的路由機制,您必須修改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'}); 
}]); 
+0

感謝您的回覆,這只是使用正確的URL請求觸發API並返回對象的問題。 –

0

我看起來像

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

希望它可以幫助你

+0

問題在於我必須將價值傳遞給工廠。 –

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); 
     }); 

    }); 
}]);