$ window.location更改

时间:2017-03-06 19:56:49

标签: javascript angularjs angularjs-scope angular-material angularjs-ng-route

我使用md-grid-tiles作为网站新页面的链接。为了给出一些上下文,我有一个AngularJS 1应用程序,它是一个使用ng-view的单页面应用程序。所以我的链接都是用#page格式化的。每个磁贴都有一个名为link的属性,我附加了这个函数:

$scope.direct = function(tile) {
    $window.location.href = tile.link;
}

到我的md-grid-tile上的ng-click部分:

<md-grid-tile ng-repeat="tile in vm.tiles track by $index"
                              md-rowspan="{{tile.span.row}}"
                              md-colspan="{{tile.span.col}}"
                              md-colspan-sm="1"
                              md-colspan-xs="1"
                              ng-class="tile.background"
                              ng-click="direct(tile)">

并且tile.link变量将是&#39; #newpagetogoto&#39;

这可以按预期工作,但在使用此方法重新路由后,后退按钮功能不存在。当我在转到新页面后按回来它只是重新加载新视图并且不会让我回到主页。有办法解决这个问题吗?

如果我使用<a>链接到我网站的新视图,后退按钮功能会按预期工作,但只有当我使用$ window.location.href时才会破坏后退按钮的功能。

使用<a>

的示例
<a href="#about" onclick="closeNav()">Our Purpose</a>

非常感谢任何和所有的帮助,提前谢谢!

编辑: 使用<a>实际上并不保留后退按钮功能,使用<a>链接进行路由时也会中断。

1 个答案:

答案 0 :(得分:0)

您必须使用$ location而不是$ window

<?php
        $this->widget('zii.widgets.grid.CGridView', array(
            'id' => 'history-grid',
            'dataProvider' => $creditTransactionObj->search(),
            'loadingCssClass' => '',
            'enableSorting' => true,
            'itemsCssClass' => 'my-teams',
            'summaryText' => "Displaying {start} - {end} of {count} results.",
            "emptyText" => "There is no transaction history available.",
            'columns' => array(
                array('name' => 'transaction_date', 'header' => 'Date', 'type' => 'raw', 'value' => 'date("d-M-Y",strtotime($data->transaction_date))', 'htmlOptions' => array('class' => '')),
                array('name' => 'credit_qty', 'header' => '# of Credits', 'sortable'=>false, 'type' => 'raw', 'value' => '($data->transaction_type == 1) ? - $data->credit_qty : $data->credit_qty', 'htmlOptions' => array('class' => '')),
                array('name' => 'credit_type', 'header' => 'Type', 'type' => 'raw', 'value' => '$data->credit_type', 'htmlOptions' => array('class' => '')),
                array('name' => 'transaction_type', 'header' => 'Activity', 'type' => 'raw', 'value' => '($data->transaction_type == 0) ? "Purchased" : (($data->transaction_type == 1) ? "Spent" : "Refunded")', 'htmlOptions' => array('class' => '')),
                array('name' => 'fkasmtGroupId', 'header' => 'Group Name', 'type' => 'raw', 'value' => array($this,'getGroupName'), 'htmlOptions' => array('width' => '35%')),
            )
        ));
    ?>

查看$ location文档:https://docs.angularjs.org/guide/ $ location