Angular で DOM コンテナーを変更せずに ng-view を使用することはできません。別の方法は、ディレクティブを使用して独自の $routeParams を読み取り、DOM を操作することです。
Angularが機能しないようにするために「ページが読み込まれた後にAngularを有効にする」必要があることには、本質的に何か問題があるようです。
サーバー上のテンプレートにデータをロードする代わりに、現在のルートのコントローラーでこれを取得してみませんか? はい、データは別のリクエストでロードされますが、ユーザーは「二重待機」する必要はありません。
次のようなルートを作成します。
app = angular.module('Main', [])
.config( ($routeProvider, $locationProvider) ->
$routeProvider
.when('/dashboard', {
templateUrl: '/partial/dashboard'
controller: 'DashboardCtrl'
})
.otherwise({redirectTo: '/dashboard'})
)
そして、コントローラーで:
@DashboardCtrl = ($scope, $http, $routeParams, $route) ->
# Fetch all data to populate the dashboard template here.
$http(
method: "GET"
url: "/api/dashboard"
data: $scope.request
).success((data, status, headers, config) ->
$scope.dashboard_data = data
).error (data, status, headers, config) ->
console.log data
サーバー側とクライアント側の両方でテンプレートにデータをレンダリングすることを心配するよりも、確かにその方が簡単ですか?