【问题标题】:How to pass data from one html page to another using ui.router in angularjs如何在angularjs中使用ui.router将数据从一个html页面传递到另一个页面
【发布时间】:2016-02-26 04:35:31
【问题描述】:

我从后端检索数据并使用控制器将其显示在 html 页面中。当用户点击某个链接时,另一个页面根据链接 id 加载(这里是促销页面)。我想将 menu_id 传递给加载页面。我使用 ngRoute。下面是我试过的html代码,

<li class="table-view-cell" ng-repeat="menu in menuList">
    <a class="navigate-right btn-lg" href="#{{menu.link}}/{{menu_id}}">
          <span class="{{menu.icon}}"></span>
                    {{menu.menuName}}
    </a>
</li>

下面是路由,

mobileApp.config(function($routeProvider) {
$routeProvider
 .when('/promo/menu._id', {
            templateUrl: 'tpl/promo.html',
            controller: 'promoController',
            activePage: 'promo'
        })

下面是促销页面的控制器,我需要检索 menu_id,

$http.get(SERVER_URL + '/api/templates/getCategories?appId='+$rootScope.appId+'&mainId='+$routeParams.id)
        .success(function(data) {
            $scope.requestCategory = data[0];
        }).error(function(err) {
            alert('warning', "Unable to get templates", err.message);
        });

【问题讨论】:

标签: html angularjs ngroute angularjs-ng-route


【解决方案1】:
mainModule.config([function($routeProvider) {
    $routeProvider.when('/promo/:menu._Id', {
        templateUrl : 'tpl/promo.html',
        controller : 'promoController',
        activePage: 'promo' 
    }); 
}

你可以像上面那样定义你的路由,注意menu._Id之前的冒号。在您的控制器中,您可以使用 $routeParams 服务访问 menu._Id,如下所示:

$routeParams.menu._Id

就是这样。

【讨论】:

  • 与以前的结果相同。它没有通过菜单。_id
【解决方案2】:

当我如下更改路由时它开始工作,

 .when('/promo/:id', {
            templateUrl: 'tpl/promo.html',
            controller: 'promoController',
            activePage: 'promo'
        })

【讨论】:

    【解决方案3】:

    在这种情况下,您必须在控制器中执行以下操作:

    $routeParams.id
    

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 2017-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      相关资源
      最近更新 更多