У меня есть значения 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) и создать URL-адрес http://api/v1/tiles/38
чтобы вернуть данные объекта, который имеет идентификатор 38 в API.
Я могу получить значение ID, но не знаю, как передать его и сделать вызов API.
Там действительно не нужно играть с вашим $ ресурсом, прежде чем потреблять его, обернув его в эту функцию 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;
});
});
}]);
Это похоже только на базовый скелет для 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'});
}]);
В ваших часах вы можете указать аргументы 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);
});
});
}]);
я выгляжу как
// Get
$http.get("http://api/v1/tiles/"+ tileID)
.success(function (response) {
// Do somthing
});
Надеюсь, это поможет вам