Angular,使用select输入过滤器更新路由?

22 浏览
0 Comments

Angular,使用select输入过滤器更新路由?

我已经设置了我的应用程序,可以使用选择输入来过滤产品列表的颜色。如果URL中存在颜色参数,我还使用$routeprovider将其传递给页面。

现在我想在选择框改变时更新URL/路由。我该如何将选择的更改绑定到路由?

0
0 Comments

Angular使用选择输入过滤器更新路由的问题出现的原因是需要将一个<select>元素绑定到一个带有ng-model的模型,然后根据选择的值更新路由的路径或查询参数。解决方法是使用$watch来监听绑定的值的变化,并根据变化的值更新$location.search。同时,还可以设置双向绑定,使搜索参数和本地模型之间的改变能够在<select>中反映出来。最后,在路由的控制器中可以通过$routeParams.color来访问路由参数。以下是具体的代码实现:

// 监听绑定的值的变化,并根据变化的值更新$location.search
$scope.$watch('selectedColor', function (color) {
    if (color) {
        $location.search('color', color); 
    } else {
        $location.search('color', null);
    }
});
// 设置双向绑定,使搜索参数和本地模型之间的改变能够在