Saya cukup baru mengenal AngularJS. Saya menggunakan ui-router dan node.js sebagai server UI saya untuk panggilan API ke server lain. Saat ini, saya mengalami masalah dalam menambahkan string kueri ke URL bergantung pada input pengguna (pilihan dropdown).
Kode pengontrol AngularJS saya:
$scope.getResults = function() {
server.getResults($scope.myColor, $scope.mySize)
.success(function(data) {
results = data;
});
};
Layanan AngularJS untuk fungsi di atas:
app.factory('server', ['$http', function($http){
return {
getResults : function(color, size) {
var req = {};
req.color = color;
req.size = size;
return $http({
method: 'GET',
url: 'results',
params : req
});
}
}
}]);
ui-router di Angular:
$stateProvider.state('home', {
url: '/home',
templateUrl: '/home.html',
controller: 'MainCtrl',
data:{
pageTitle: 'blah'
}
})
Di Node.js, saya memiliki rute seperti ini:
app.get("/results", function (req, res) {
var api = 'some api call/' + req.query.color + '/' + req.query.size;
request(api, function (error, response, api) {
if (!error && response.statusCode == 200) {
res.json({
Color: req.query.color,
Size: req.query.size,
Answer: api
});
}
});
});
Saya ingin url browser beralih dari /home ke /home?color=Red&&size=Large
Jelas saya tidak melakukan ini dengan benar, url browser saat ini tidak dinamis. Tolong tunjukkan bagaimana melakukan ini dengan benar.