指令templateUrl重定向到/

时间:2014-11-10 10:04:28

标签: javascript angularjs partial directive angular-ui-router

我正在尝试在指令中使用templateUrl来加载部分,但在访问模板的URL时,我将被重定向回/。因此,部分加载整个页面而不是部分请求。

添加到cart.js

.directive('addToCart', function() {
    return {
        restrict: 'E',
        scope: {

        },
        replace: false,
        templateUrl: 'src/common/add-to-cart/add-to-cart.tpl.html',
        link: function(scope, element, attrs) {

        }
    };
});

app.js

$urlRouterProvider.otherwise( '/' );

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

我要解决此问题的方法是使用id作为templateUrl而不是正确的路径。我不完全确定它是否总是像这样,或者是因为我使用的是grunt角度模板引擎,但是这个改变解决了这个问题:

templateUrl: 'add-to-cart/add-to-cart.tpl.html',

另一个解决方案是注入templateCache并使用完全相同的id和完全相同的结果加载模板。总而言之,我认为它完全相同。

.directive('addToCart', ['$templateCache', function($templateCache) {
...
    templateUrl: $templateCache.get('add-to-cart/add-to-cart.tpl.html'),
...
}]);