Html 如何在ui路由器中将查询字符串附加到URL

Html 如何在ui路由器中将查询字符串附加到URL,html,angularjs,node.js,angular-ui-router,angularjs-routing,Html,Angularjs,Node.js,Angular Ui Router,Angularjs Routing,我对AngularJS很陌生。我使用ui路由器和node.js作为我的ui服务器,用于对另一台服务器进行API调用。现在,我很难根据用户输入(下拉选择)将查询字符串附加到URL 我的AngularJS控制器代码: $scope.getResults = function() { server.getResults($scope.myColor, $scope.mySize) .success(function(data) { results = data;

我对AngularJS很陌生。我使用ui路由器和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现在不是动态的。请说明如何正确执行此操作

当状态参数发生变化时,请使用
重新加载搜索:false
选项停止重新加载当前路由

$stateProvider.state('home', {
    url: '/home?color&size',
    templateUrl: '/home.html',
    controller: 'MainCtrl',
    data:{ 
       pageTitle: 'blah' 
    },
    reloadOnSearch: false //would not refresh state, for location changes.
})
控制器

$scope.getResults = function() {
    //change parameter of URL usingn $location.search.
    $location.search('color', $scope.myColor);
    $location.search('size', $scope.mySize);
    server.getResults($scope.myColor, $scope.mySize)
    .success(function(data) {
        results = data;
    });
};

@杰马库斯很高兴知道这一点。谢谢:-)@PankajParker顺便说一句,url按预期更改,但当我复制url并将其粘贴到新选项卡中时,服务器不会像正常情况下那样被调用,任何方法都可以解决这个问题?@jebmarcus在初始数据调用时确实会从状态参数中获取参数,例如
$stateparms.color
&
$stateparms.size
来读取这些参数并在ajax调用中传递。@PankajParker我对初始数据调用的含义有点困惑。我认为这里的问题是,现在的url是这样的:“但是我正在返回$http我有url:'结果'不是'主页。”