2015-04-21 62 views
2

我想在使用ui-router和angular-rails-templates時詢問有關templateUrl的幫助。我能夠使「模板」工作,但不能「templateUrl」。它看起來好像只是重新渲染自己。下面是截圖:http://i.imgur.com/H3dnFoF.jpgAngularJS和ui-router-templateUrl不起作用

什麼我打算做的是使application.html.erb主模板,只是通過幾個視圖切換從應用程序/資產/模板。我對此很新,似乎無法意識到我做錯了什麼。提前致謝!這裏是我的代碼:

//應用程序/視圖/佈局/ application.html.erb

<!DOCTYPE html> 
<html> 
    <head> 
     <title>WebApp</title> 
     <%= stylesheet_link_tag 'application', media: 'all' %> 
     <%= javascript_include_tag 'application' %> 
     <%= csrf_meta_tags %> 
    </head> 
    <body ng-app="webApp"> 
     <div> 
      <h1>{{main}}</h1> 
     </div> 
     <div ui-view=""></div> 
    </body> 
</html> 

//應用程序/資產/ Java腳本/ app.js

var appModule = angular.module('webApp', ['ui.router', 'templates']); 

appModule.controller('IndexCtrl', [ 
'$scope', 
function($scope){ 
    $scope.main = '-Main Banner-'; 
}]); 

appModule.controller('ContentCtrl', [ 
'$scope', 
function($scope){ 
    $scope.cont = 'Content page here!'; 
}]); 

appModule.config(function (
    $stateProvider, 
    $urlRouterProvider, 
    $locationProvider) { 

    $stateProvider 
     .state('home', { 
      url: '/', 
      templateUrl: 'homepage.html', 
      controller: 'IndexCtrl' 
     }); 

    $stateProvider 
     .state('content', { 
      url: '/content', 
      templateUrl: 'content.html', 
      controller: 'ContentCtrl' 
     }); 

    // default fall back route 
    //$urlRouterProvider.otherwise('/'); 

    // enable HTML5 Mode for SEO 
    $locationProvider.html5Mode({ 
     enabled: true, 
     requireBase: false 
    }); 

}); 

//應用程序/資產/模板/ homepage.html.erb

<div class="container" ng-controller="IndexCtrl"> 
    <h1>The Homepage View!</h1> 
    <h1>{{main}}</h1> 
</div> 

//應用程序/資產/模板/ content.html.erb

<div class="container"> 
    <h1>The Content View!</h1> 
</div> 

//應用程序/資產/ Java腳本/ application.js中

//= require jquery 
//= require jquery_ujs 
//= require bootstrap 
//= require angular 
//= require angular-ui-router 
//= require angular-rails-templates 
//= app.js 
//= require_tree . <- there's an error on initializing the module if this is removed 
//= require_tree ../templates 

// routes.rb中

root 'application#index' 
get '*path' => 'application#index' 

// application_controller

def index 
     render 'layouts/application' 
    end 
+0

我認爲你需要從comment' $ urlRouterProvider.otherwise( '/')刪除此代碼;' –

+0

@pankajparkarhi。喜。試圖消除這一點。什麼都沒發生。短暫的「{{main}}」文本閃現後也沒有任何內容。 – bitfrost41

回答

1

它看起來app/assets/javascripts/application.js需求更改。 //= app.js

//= require app 

將工作。

+0

嗨。不,沒有工作:( – bitfrost41