在单击搜索按钮上,我需要以角度js显示结果页面

时间:2015-02-16 14:59:53

标签: angularjs angular-ui-router

我有一个带有搜索按钮的文本框,如下所示                                 

单击搜索按钮,我调用SearchController.search方法和 我的期望是它会显示一个包含结果的新页面。

$scope.search = function () {
     $http.get('data/results.json').success(function (data) {
        $scope.activities = data;
        $state.go('results',data);
});

我的app.js如下所示

var myApp = angular.module('MyApp', ['ui.router']);
myApp.config(function($stateProvider, $urlRouterProvider) {
  $stateProvider
     .state('results', {
         url: '/results',
         templateUrl: 'result.html',
         controller: 'SearchController'
      });
  $urlRouterProvider.otherwise('/');
});

但是当我点击搜索按钮时,没有任何反应,网址只会更改为l /#/ results。

我在搜索页面中没有任何ui-view,我想去结果页面显示结果。如何解决这个问题?我在做什么错误?

3 个答案:

答案 0 :(得分:1)

您无法将未映射的对象发送到$ state.go。

查看API:http://angular-ui.github.io/ui-router/site/#/api/ui.router.state。$ state

另一个类似问题:AngularJS: Pass an object into a state using ui-router

答案 1 :(得分:0)

如果要在不同的页面上显示它,请使用html上的“ui-sref”导航到新页面并在页面上调用ng-init,例如

<button type="button" ui-sref="results">

在result.html上,您可以在父节点上调用init,例如

<section ng-init="search()"> ..... .... </section> 你的控制器现在看起来像这样

$scope.search = function () {
  $http.get('data/results.json').success(function (data) {
    $scope.activities = data;
});

答案 2 :(得分:0)

使用ui-router,会发生状态更改,并根据状态显示不同的视图。因此,当使用ui-router时,从一个页面移动到另一个页面是错误的看法。我们从一个状态移动到另一个状态,因此可以使用&#34; services&#34;来完成参数传递。