【发布时间】:2016-08-23 23:31:38
【问题描述】:
我有一个使用 UI Router 的小型搜索应用程序,如下所示:
'use strict';
angular.module('searchApp.routes', ['ui.router'])
.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home/home.html',
controller: 'SearchCtrl'})
.state('search', {
templateUrl: 'search/search.html',
url: '/search?q',
controller: 'SearchCtrl'
});
$urlRouterProvider.otherwise('/home');
}]);
因此,您可以看到两 (2) 个状态、两 (2) 个模板和一 (1) 个控制器。不正确的是,从主状态到搜索状态,搜索功能需要 2 次提交才能显示结果,如果用户想输入不同的查询,搜索状态也需要同样的结果。
查询正在根据需要显示在 url 中,但需要再次提交才能显示结果...?
我在我的SearchCtrl 中像这样初始化$stateParams
$scope.searchTerms = $stateParams.q || '';
其中 searchTerms 是我在搜索表单上的 ng-model。
我在搜索功能的SearchCtrl 中有这样的$state.go() 设置
$state.go('search', {q: $scope.searchTerms});
我错过了什么和/或做错了什么?
【问题讨论】:
标签: javascript angularjs angular-ui-router