如果没有 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
当然,这比不必担心在服务器端和客户端都将数据呈现到模板中要容易吗?