代码之家  ›  专栏  ›  技术社区  ›  Usman Iqbal

如何在angular Js中发送routeparams中的空字符串?

  •  2
  • Usman Iqbal  · 技术社区  · 9 年前

    嗨,我有一张表格,我在其中发送 searched term 和 category id .它工作正常,因为我发送两个东西,但如果用户没有输入任何东西,则只会出现“类别id”,如果 搜索词 为空,所有结果都显示给用户。

    但是,如果我在路由参数中发送空字符串,我将重定向到 index app.js 密码

      when('/subcategory/:subcatId/:search', {
                    templateUrl: 'partials/subcategory.html',
                    controller: 'SubCategoriesController'
                }).
    

    我的表格

       <form name="searchCategoryForm">
                    <div class="col-md-9 col-xs-10 col-sm-10">
                        <input class="form-control" placeholder="Find your item here...." ng-model="search" type="text" style="color:#09669c;">
                    </div>
                    <div class="col-md-2 col-xs-2 col-sm-2">
                        <a class="btn btn-primary" role="button" href='#/subcategory/{{cats[clicked_category].id}}/{{search}}'> Search</a>                  
                    </div>
                </form>
    

    我的controller.js

    $scope.search_term = $routeParams.search;
        $scope.category_id = $routeParams.subcatId;
    
        /* Search category form */
    
    
        $scope.search_category = function () {
            $http({
                method: 'GET',
                url: 'abc',
                params: {"name": $scope.search_term, "category_id": $scope.category_id},
                headers: {'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': $rootScope.keyword_auth_token}
            })
                    .success(function (data) {
                        $scope.search_category_result = data.items;
                        console.log($scope.search_category_result);
                        })
                    .error(function (data) {
                        console.log(data);
                    });
        };
        /* Search category form ends here*/
        if ($scope.search_term && $scope.category_id)
        {
            $scope.search_category();
        }
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    我认为您应该在搜索项后面加上问号(?),将其标记为可选项:

    when('/subcategory/:subcatId/:search?', {
        templateUrl: 'partials/subcategory.html',
        controller: 'SubCategoriesController'
    }).
    

    Can angularjs routes have optional parameter values?

    推荐文章