2016-04-21 59 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?' –