将附加数据放入 $routeProvider templateUrl 请求

Putting additional data to $routeProvider templateUrl request

我想添加一些 headers 到获取模板的请求中,这样我就可以拒绝 non-angularjs 请求并返回错误。

然而,似乎只有使用 $http 才有可能,重新实现类似于 templateUrl 提供的机制似乎是一种可怕的浪费。

这是我的示例路由器:

siteApp.config([ '$routeProvider', '$locationProvider',
        function($routeProvider, $locationProvider) {
            $routeProvider.when('/user', {
                controller : 'UserController',
            }).when('/link', {
                templateUrl : '/user/index.json'
            });
            $locationProvider.html5Mode(true);
        } ]);

编辑:如果有帮助,我正在尝试让我的 ZendFramework2 API 检测它,但它无法识别 XmlHttpRequest

我建议您在 angular 的 run 阶段加载这些模板。 它将被放入 $templateCache 提供程序中,当您第二次请求相同的模板时,它将直接从 $templateCache 本身获取。

代码

//get the templates with headers in application run phase.
app.run(['$templateCache', '$q', '$http', function($templateCache, $q, $http) {
    var promises = [];
    $http.get('partials/views/template1.html', {
        headers: {
            'Content-Type': undefined //here you can add multiple header and get the template
        },
        cache: $templateCache
    });
    $http.get('partials/views/template2.html', {
        headers: {
            'Content-Type': undefined //here you can add multiple header and get the template
        },
        cache: $templateCache
    });
}]);

希望对您有所帮助。谢谢