单击a-tag时,Angular不会更新页面

时间:2013-10-24 12:49:10

标签: javascript angularjs angularjs-directive

我有来自twitter bootstrap的标签导航,我用它来浏览我的页面。 enter image description here

当我点击tournaments时,视图不会更新,但网址现在会显示#/tournaments

enter image description here enter image description here

但是,如果我点击网址栏,然后按回车键,则会更改视图:

enter image description here

我已经使用build文件夹和编译文件夹设置了项目。当项目在build文件夹中时,一切正常。然后我使用grunt来连接和缩小文件,并将它放在已编译的文件夹中,这就是它开始像这样的行为。

我使用r.js进行连接和缩小(我正在使用require.js)并且在此过程中我没有收到任何错误。正如我强制刷新浏览器窗口时所看到的那样,所有html视图也会被正确复制。

就像角度不会对位置的变化做出反应一样,但active-tab(标题为灰色的那个)会被正确交换。它只是不更新​​的视图。

有谁知道这是什么?

我已将标签放在自己的指令中:

define(['angular'], function (ng) {
var directives = ng.module('directives', []);

/* top navigation tabs */
directives.directive('tabset', function () {
    return {
        restrict: 'E',
        scope: {},
        transclude: true,
        replace: true,
        template: '<ul class="nav nav-tabs" ng-transclude></ul>'
    };
})
.directive('tab', ['$location', function ($location) {
    return {
        restrict: 'E',
        replace: true,
        scope: {
            route: '@',
            title: '@'
        },
        link: function (scope, element, attrs) {
            var route = attrs.route;

            scope.location = $location;
            scope.active = false;

            scope.$watch('location.path()', function (new_route) {
                scope.active = route === new_route;
            });
        },
        template: '<li data-ng-class="{active: active}">' +
                    '<a href="#{{route}}">{{title}}</a>' +
                    '</li>'
    };
}]);

return directives;
});

我这样用:

<tabset>
    <tab data-route="/home" data-title="Home"></tab>
    <tab data-route="/tournaments" data-title="Tournaments"></tab>
    <tab data-route="/about" data-title="About"></tab>
</tabset>

问题出现在缩小和连接之后。

编辑:似乎它没有加载所有来源:

build路径中:

enter image description here

compiled路径中:

enter image description here

当我点击build路径中的某个链接时,会为我需要的视图发送http GET请求,这不会发生在compile路径中。

.../build/#/...有效。 .../compiled/#/...不起作用。

0 个答案:

没有答案