ฉันค่อนข้างใหม่กับ AngularJS ฉันใช้ ui-router และ node.js เป็นเซิร์ฟเวอร์ UI ของฉันสำหรับการเรียก API ไปยังเซิร์ฟเวอร์อื่น ขณะนี้ ฉันประสบปัญหาในการต่อท้ายสตริงข้อความค้นหาเข้ากับ URL โดยขึ้นอยู่กับอินพุตของผู้ใช้ (การเลือกแบบเลื่อนลง)
รหัสคอนโทรลเลอร์ AngularJS ของฉัน:
$scope.getResults = function() {
server.getResults($scope.myColor, $scope.mySize)
.success(function(data) {
results = data;
});
};
บริการ AngularJS สำหรับฟังก์ชั่นข้างต้น:
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-เราเตอร์ในเชิงมุม:
$stateProvider.state('home', {
url: '/home',
templateUrl: '/home.html',
controller: 'MainCtrl',
data:{
pageTitle: 'blah'
}
})
ใน Node.js ฉันมีเส้นทางของฉันดังนี้:
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
});
}
});
});
ฉันต้องการให้ URL ของเบราว์เซอร์เปลี่ยนจาก /home เป็น /home?color=Red&&size=Large
แน่นอนว่าฉันทำสิ่งนี้ไม่ถูกต้อง URL ของเบราว์เซอร์ไม่เป็นแบบไดนามิกในขณะนี้ โปรดแสดงวิธีการดำเนินการนี้อย่างถูกต้อง