将其他数据放入$ routeProvider templateUrl请求

时间:2015-02-08 04:24:16

标签: javascript angularjs xmlhttprequest angularjs-routing ng-view

我想添加一些标题来提取模板的请求,这样我就可以拒绝非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

1 个答案:

答案 0 :(得分:0)

我建议您在角度run阶段加载这些模板。 这将在$templateCache提供程序中进行,当您第二次请求相同的模板时,它将直接从$templateCache提取。

<强> CODE

//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
    });
}]);

希望这可以帮到你。感谢。