angularjs - $route.current 在尝试获取当前参数时未定义

标签 angularjs

我正在尝试在 Angular 中进行基本路由。

我的配置看起来像

app.config(function($routeProvider, $locationProvider) {
  $locationProvider.html5Mode(true);

  $routeProvider.when('/', { 
    templateUrl: 'home.html', controller: 'loginCtrl' 
  }, 
  $routeProvider.when('/user_profile/, { 
     templateUrl: 'user_profile.html', controller: 'UserProfileCtrl'
  }
});

当我有一个指向 user_profile 的链接时,我无法获得 $route 参数。
<a href="user_profile/?user_id=9">Go To Profile</a>

在 Controller $route.paramsundefined .

我试着做一个 plnkr但显然我在这里遗漏了一些基本的东西

编辑:$routeParams
我有一个从服务器获取用户信息的模块。当我通过 $routeParams是否设置为这个。
<script type="text/javascript">
  angular.module('userFromServer', [])
    .service('currentUser', function() {
      <% if logged_in %>
        this.name = '<%= @User.name %>';
        this.id = '<%= @User.id %>'
      <% else %>
        this.name, this.id = '';
      <% end %>
    })
</script>

最佳答案

看看这个

您可以使用 $routeParams用于获取路由参数

Plunker (Non HTML5 Mode)

Plunker (HTML5 Mode)

app = angular.module('MyApp', ['ngRoute']);

app.config(function ($routeProvider, $locationProvider) {

  $routeProvider.when('/', { 
    templateUrl: 'home.html', 
    controller: 'loginCtrl' 
  })
  .when('/user_profile/:user_id', { 
     templateUrl: 'user_profile.html', 
     controller: 'UserProfileCtrl'
  });

});  

app.controller('loginCtrl', function($scope, $routeParams) {
  $scope.name = "Hello"
  console.log($routeParams); 
}); 

app.controller('UserProfileCtrl', function($scope, $routeParams) {
  $scope.name = "UserProfile"
  console.log($routeParams); 
});

关于angularjs - $route.current 在尝试获取当前参数时未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29652431/

相关文章:

angularjs - 我在哪里可以初始化模块范围的变量?

javascript - AngularJS "ng-submit"在浏览器预填充表单字段时出现问题?

angularjs - AngularFire - 如何查询非规范化数据?

javascript - 为什么即使使用自定义指令,Angular ng-cloak 也会覆盖我的 ng-show

javascript - ngCordova 捕获 - 属性 'capture' 未定义

javascript - Bootstrap Popover 内部的 ngRepeat

angularjs - 将数据从 http 分配给 'this' Controller

javascript - 当我从目标链接返回时,如何保持在列表组中的位置?

angularjs - 键盘可访问下拉子菜单的 Angular Bootstrap 实现?

javascript - Pagespeed 优化后 Grunt usemin 不起作用