Angular $routeParams is empty
Angular $routeParams is empty
我有一个url,它将通过Rails传递到我的Angular代码中。然而,当我尝试在url中提取一个参数时,它显示为空白。有人能帮我吗?
示例url:http://localhost:3000/events/event1
Plnkr:http://plnkr.co/edit/yG8wAZHhgPtH2PBFzql3?p=preview
角度:
eventsApp = angular.module('EventsApp', ['ngRoute'])
eventsApp.config [
'$routeProvider'
'$locationProvider'
($routeProvider, $locationProvider) ->
$locationProvider.html5Mode(true)
$routeProvider.when '/events/:eventName',
templateUrl: '../../views/events/events.html.erb'
controller: 'EventsCtrl'
return
]
eventsApp.controller('EventsCtrl', [
'$scope'
'$routeParams'
($scope, $routeParams) ->
console.log($routeParams.eventName) # shows up as undefined
$scope.greeting = $routeParams.eventName
])
HTML:
events.html.erb
<div>
{{greeting}}
</div>
application.html.erb(总体布局)
<div id="content" ng-app="EventsApp">
<div ng-view></div>
<%= yield %>
</div>
编辑:按照建议,我已经将ng-app
和ng-view
移动到布局中,并且只将div保留在events.html.erb
如果Karasuna指出的错误仍然给你空的结果,那可能是因为$routeParams
的异步操作
$routeParams
通常需要一些时间才能加载。它正在异步加载。当你尝试使用它时,它可能还没有准备好,而且仍然是空的。一种方法是,在路由准备就绪时创建事件侦听器。
$scope.$on('$routeChangeSuccess', function() {
console.log($routeParams.eventName);
});
这是因为您包含了带有ng-controller
指令的控制器,而不是带有ng-view
指令的控制器。它一定是这样的:
<body ng-app="EventsApp">
<div ng-view></div>
</body>
在events.html.erb
:中
<div>
{{greeting}}
</div>
相关文章:
- Is onfling available for html, html5
- jQuery is not loaded
- reactRedux is not defined
- ReferenceError: cordova is not defined @ng-cordova.min.js:7
- Jquery - table.row(tr) is undefined
- contentWindow.document.body is null
- Tomcat websocket is not working
- $(.class).empty总是缺少一个元素
- Ember.TEMPLATES is empty (ember-cli-htmlbars)
- Angular if ng-repeat multi filter is empty
- jQuery $.ajax post value is empty
- req.session.passport is empty: req.user undefined
- Javascript - "this" is empty
- 从数组中选择随机项Remove It, Restart Once Array is Empty
- Angular $routeParams is empty
- evt.target.result is empty?
- Node.js express validator validate req.body is not empty
- Ajax responseText is empty
- simple Ajax (local): responseText is empty
- ng-bind-html is empty