2016-04-21 81 views
2

我的頁面中有這個搜索按鈕。但我不知道爲什麼它不能正常工作,如果我點擊它將重定向到儀表板頁面。搜索按鈕不起作用

MainApp.config(['$stateProvider', '$urlRouterProvider', function ($stateProvider, $urlRouterProvider) { 
// Redirect any unmatched url 
$urlRouterProvider.otherwise("dashboard.html"); 
app.version = '1454574448'; 

$stateProvider.state('app', { 
     url: "/app.html/:search?/:page?", 
     templateUrl: 'views/app/app.html?_=' + app.version, 
     controller: 'app' 
    }) 

這是我的搜索按鈕:

<div class="input-group"> 
<input type="text" class="form-control" id="search" ng-model="input.search" required ng-trim="true"> 
    <div class="input-group-btn"> 
    <button type="button" class="btn btn-primary" tabindex="-1" ng-click="refresh()">Search</button> 
    </div> 
</div> 

這是從控制器:

$scope.page = ($routeParams.page) ? $scope.page = parseInt($routeParams.page) : 0; 
$scope.input = { 
    search: ($routeParams.search == undefined) ? '' : $routeParams.search, 
}; 

$scope.refresh = function() { 
    app.location.path('app/' + $scope.input.search + '/' + $scope.page); 
}; 

有人可以幫助我找出錯誤的原因?

+0

你有一個'刷新()'函數被觸發按鈕點擊? – TZHX

+0

@TZHX是。更新了上面的代碼 – sue

回答

0

問題是,具體的網址和實際的網址是不匹配的。因此,該URL重定向到默認頁面不存在。

修改網址在您的狀態配置

$stateProvider.state('app', { 
    url: "/app/:search?/:page?", 
    templateUrl: 'views/app/app.html?_=' + app.version, 
    controller: 'app' 
}) 

編輯

使用$state.go改變狀態

MainApp.config(['$stateProvider', '$urlRouterProvider', '$state', function ($stateProvider, $urlRouterProvider, $state) 
{ 
    // ... 
    $scope.refresh = function() { 
     $state.go('app' { 'search': $scope.input.search, 'page': $scope.page }); 
    }; 
    // ... 
} 
+0

你的代碼和我的代碼有什麼不同?我不明白。你能舉個例子嗎? – sue

+0

@sue在你的代碼中是'/app.html/:search?/:page?',而我的url是'/ app /:search?/:page?' –

+0

@sue,你正在更新路徑到'' app /'+ $ scope.input.search +'/'+ $ scope.page'。因此,您需要在狀態配置中設置相同的名稱,即'/ app /:search?/:page?' –