2016-12-15 58 views
2

嗨我有一个表格,我发送searched termcategory id。它可以正常工作,因为我正在发送这两种东西,但是如果用户没有输入任何东西,只有“类别ID”会去,而在后端如果searched term为空,所有结果都会显示给用户。如何在角Js中的routeparams发送空字符串?

但是,如果我在路由参数中发送空字符串,我将重定向到我的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

我相信你应该用一个问号后面添加它标志着您的搜索字词作为可选(?):

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

查看此答案以了解更多信息o:Can angularjs routes have optional parameter values?

+0

Hats Off Sir :) –

+0

但是....那么我的头就会变冷;) – Robba

+0

你是怎么知道的?它是否写在文档中? –

相关问题