如何使用angularjs中的ui.router将数据从一个html页面传递到另一个html页面

时间:2016-02-26 04:35:31

标签: html angularjs ngroute angularjs-ng-route

我从后端检索数据并使用控制器在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);
        });

3 个答案:

答案 0 :(得分: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

多数民众赞成的。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

$routeParams.id