我想將我的RoR網頁中的一個轉換爲Angular,以決定是否要將我的所有前端遷移到Angular。Rails to Angular Migration - 加載標籤動態
我遇到的問題是路由 - 看來由rails配置的路由總是「劫持」請求,所以整個佈局再次加載,而不是僅僅將模板加載到ng-view div中。
我嘗試了幾篇關於這種遷移類型的文章,但是這些文章或者討論一個全新的環境(對我來說不是這樣),相互矛盾(或者只是使用非常不同的編碼風格,這很令人困惑) ,或者在完成所有事情之前簡單地結束。
我到目前爲止有:
主角度文件
@dashboard = angular.module('dashboard',['dashboardServices','ngSanitize'],
['$routeProvider', '$locationProvider', ($routeProvider,
$locationProvider) ->
$locationProvider.html5Mode(true)
$routeProvider.when('/', {
templateUrl: "/app/views/dashboard/promote.html.haml",
controller: 'PromoteCtrl'
})
]).config(["$httpProvider", ($httpProvider) ->
$httpProvider.defaults.headers.common['X-CSRF-Token'] =
$('meta[name=csrf-token]').attr('content')
])
dashboardServices = angular.module('promoteServices', ['ngResource']).
factory('PromoteInitData', ['$resource', ($resource) ->
$resource('/dashboard-ng/promote-data.json', {}, {
query: { method: 'GET', isArray: true }
create: { method: 'POST' }
})
])
的推進器本身(目前沒什麼好說的存在):
@PromoteCtrl = @dashboard.controller('PromoteCtrl',
['$scope', '$location', 'PromoteInitData'],
$scope, $location, $resource, PromoteInitData) ->
# Nothing at the moment
Rails的路線(應該刪除嗎?):
get '/dashboard/promote', :to => 'dashboard#promote', :as => 'promote'
,將在API請求作出響應Rails的控制器設置了「respond_to代碼:JSON」,每一個具體的方法返回一個適當的「respond_with」語句,但是這無關緊要,因爲我不是問的API Angular和Rails(還:))之間的調用,而是動態模板加載。
Rails佈局在html標籤中配置了ng-app,我在ng-view div之後立即產生內容。
任何線索?我顯然錯過了一些重要的東西。
這是否意味着我應該刪除導軌路線?還是需要?不確定整個機制如何工作。 – CodeBender
不,你需要的路線,否則你會得到一個404。基本上你想服務於相同的角頁面,無論路線,如果它是一個HTML請求。 – ptd