【问题标题】:AngularJS, Rails and ui-router not showing template after switch from ngRoute从 ngRoute 切换后,AngularJS、Rails 和 ui-router 不显示模板
【发布时间】:2015-10-29 01:14:41
【问题描述】:

您好,我正在尝试从 ngRoute 切换到 ui-Router,但切换后,模板不再加载。

我在 application.html.erb 中添加了 ui-Router:

<%= javascript_include_tag 'application' %>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.15/angular-ui-router.js"></script>

这是我的 app.js 中的代码

var app = angular.module("alliance",['ui.router', 'ui.bootstrap']);

app.config(['$stateProvider','$urlRouterProvider',function($stateProvider, 

$urlRouterProvider) {

  $stateProvider
    .state('dashboard', {
      url:'/',
      templateUrl: "<%= asset_path('pages/dashboard.html') %>",
      controller:   "DashboardController"
    });

  $urlRouterProvider.otherwise("dashboard");
}]);

正在运行的原始 ngRoute 代码。

var app = angular.module("alliance",['ngRoute', 'ui.bootstrap']);

app.config(['$routeProvider',function($routeProvider) {
   $routeProvider
     .when('/', {
       templateUrl:  "<%= asset_path('pages/dashboard.html') %>",
       controller:   "DashboardController"
     })

现在显示默认的 rails 视图。

我检查了 ui 路由器脚本是否已加载。顺序重要吗?

我也玩过州名、url,但似乎不是这样。

感谢任何帮助。提前非常感谢。

编辑:

我从 application.js 更改了加载顺序

//= require jquery
//= require jquery_ujs
//= require angular
//= require angular-ui-router
//= require angular-ui-bootstrap-tpls
//= require_tree .

我将配置中的 url 更改为 /dashboard,但它仍然给我默认的 rails 视图。

【问题讨论】:

    标签: javascript ruby-on-rails angularjs angular-ui-router


    【解决方案1】:

    顺序很重要,您需要在 Angular 之后和应用之前加载 ui-router。

    另外$urlRouterProvider.otherwise("dashboard"); 是错误的,你的状态被称为dashboard,但网址是/。 您需要将dashboard的url定义为/dashboard然后$urlRouterProvider.otherwise("/dashboard");

    【讨论】:

    • 如何使用rails控制加载顺序?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多