如何修复$ route.current在AngularJS中是未定义的

时间:2018-06-03 07:32:00

标签: html angularjs angularjs-routing

我是AngularJS的新手,目前我收到的是“TypeError:$ route.current is undefined”。请参阅以下代码:

var sampleApp = angular.module('sampleApp', ['ngRoute']);

sampleApp.config(['$routeProvider', function($routeProvider) {
    $routeProvider.
    when('/Angular/:topicId', {
        mytext: 'This is angular',
        controller: 'angularControllerParam',
        templateUrl: 'angularParam.html'
    });
}]);    

sampleApp.controller('angularControllerParam', function($scope, $routeParams, $route) {
    $scope.tutorialid = $routeParams.topicId;
    $scope.text = $route.current.mytext;
});
<body ng-app="sampleApp">
        <h1>Accessing parameters from the route</h1>
        <table class="table table-stripped" ng-controller="angularControllerParam">
            <thead>
                <tr>
                    <th> # </th>
                    <th> Angular JS topic </th>
                    <th> Description </th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td> 1 </td>
                    <td> 1 </td>
                    <td> Controllers </td>
                    <td> <a href="#!Angular/1"> Topic details </a> </td>
                </tr>
                <tr>
                    <td> 2 </td>
                    <td> 2 </td>
                    <td> Models </td>
                    <td> <a href="#!Angular/2"> Topic details </a> </td>
                </tr>
                <tr>
                    <td> 3 </td>
                    <td> 3 </td>
                    <td> Directives </td>
                    <td> <a href="#!Angular/3"> Topic details </a> </td>
                </tr>
            </tbody>
        </table>
        <div ng-view></div>
    </body>

以下是angularParam.html,当用户点击“主题详情”时,它将显示angularParam.html

<!-- angularParam.html -->

<h2>Angular</h2>
<div>{{ text }}</div>
<div>{{ tutorialid }}</div>

我想要实现的是访问路线的属性,以便在我的angularParam.html中显示“This is angular”文本

有人可以帮我这个吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

所以有两件事:

  1. 通过将相同的控制器应用于表元素,它不在路由上,因此没有$route。因此ng-controller可以从那里删除。

  2. 您需要使用mytext来访问$route.current.$$route.mytext

  3. 查看我创建的plnk:https://plnkr.co/edit/2jmErSMSSK7lA9cZPQ3m?p=preview