0

我有一个我正在构建的基于 Angular 的网站,我遇到了一个奇怪的错误,我完全被难住了。是给律师事务所的。下拉菜单之一是律师列表。当我单击一个时,他的页面加载正常。如果我去然后点击不同的律师,网址会更改为正确的网址,但会发生两件奇怪的事情。

1)它实际上并没有去那里。2) 整个下拉阴影就像在点击中并且似乎卡在那里。

与其在这里编写代码,我想我只是链接到该站点,以便您可以看到它的运行情况。但是,我会将关联的控制器复制到此处,因为我不确定您是否能够足够容易地看到它。

再一次,除了当我已经在另一位律师的简历页面上尝试点击一位律师的名字时,一切都运行良好。

律师控制器.js

app.controller('AttorneyController', ['$scope', '$location', 'attorneys', '$sce', function($scope, $location, attorneys, $sce) {

var quotelist = [];

$scope.myFunctions = {};

var practiceareas = {
    altdispute: "Alternative Dispute Resolution",
    businesscorp: "Businesses & Corporations",
    estateplanning: "Estate Planning",
    futures: "Futures & Derivatives",
    litigation: "Litigation",
    productliability: "Product Liability",
    realestate: "Real Estate",
    securities: "Securities"
};

// Load bio content 
$scope.myFunctions.load_bio = function(bioNum){
    var urlstr = $basehref + "bio.php#/?bio_id=" + bioNum;
    document.location.href = urlstr;
}

attorneys.success(function(data){
    var quotelist = [];

    function quoteflip(quotelist, id, total){

        window.clearTimeout(timeoutQuotes); 

        var src1 = quotelist[id];

        $("#bio_quotes").fadeOut(500, function(){
            $("#bio_quotes").html(src1).fadeIn(500);
        });

        var idno = (id + 1) % total;

        var timeoutQuotes =  window.setTimeout(function(){quoteflip(quotelist, idno, quotelist.length);}, 5000);
    }

    if($location.search().bio_id > 0){
        $scope.myFunctions.bio_id = $location.search().bio_id;
        var matches = $.grep(data.attorneys, function(obj) { return obj.id == $location.search().bio_id; });

        if (matches.length === 1) {
            $scope.thisAttorney = matches[0];
            quotelist = $scope.thisAttorney.quotes;
            $("#bio_quotes").html(quotelist[0]);
        }

    }else{
        $scope.myFunctions.bio_id = 0;
    };

    $scope.attorneys = data.attorneys;
    $scope.practiceareas = practiceareas;

    var timeoutQuotes =  window.setTimeout(function(){quoteflip(quotelist, 1, quotelist.length);}, 5000);

});


}]);

查看此操作的 URL 是

http://www.gelerinter.com/dev_sites/lksu

单击顶部导航中的 ATTORNEYS 并选择第一个。然后,在他的页面上,再次单击 ATTORNEYS 并选择 Mitchell Goldberg。你会看到 URL 发生了变化,但一切都被锁定了。

4

1 回答 1

0

不要尝试手动设置 document.location.href,而是使用路由提供者或位置服务。

于 2015-05-14T17:19:37.527 回答