簡體   English   中英

Angular - 如何從一個頁面鏈接到另一個頁面並在不使用id的情況下滾動到離子中的錨點

[英]Angular - how to link from one page to another page and scroll to an anchor in ionic without using id

我正在開發一個離子應用程序。 其中包含我的主頁上的文章列表,每篇文章都有一個評論圖標,該圖標應作為文章頁面中評論部分的鏈接。

如何從該首頁鏈接到文章頁面評論部分的錨點?

更新

由於Angular在#之后使用“URL”,因此無法通過id鏈接到錨點,這是在答案中建議的,所以我正在尋找另一種方法來實現它。 我嘗試了幾種解決方案,但以下都沒有效果。

在這里,有時我得到一個正確的頂部偏移值,但是當我改為另一個文章頁面時,該值保持不變。

這是我做的代碼:

文章列表查看:

<a ng-click="commentLink({{article.id}})">
              <img class="social-images" src="icons/comment.svg"/> {{ article.comments.length }}
            </a>

文章查看:

<a name="comments-section"></a>

控制器:

$scope.commentLink = function(articleId) {
    return $state.go('main.article', {id: articleId}).then(function(state) {
      var position = $ionicPosition.offset(angular.element(document.getElementsByName('comments-section')));
      console.log(position.top);
      $ionicScrollDelegate.scrollTo(position.left, position.top);
    })
  };

我也試過這個,基於這篇文章 ,但仍然沒有運氣:

控制器:

$location.hash('comments-section');
  var handle = $ionicScrollDelegate.$getByHandle('articleDelegate');
  handle.anchorScroll(true);

視圖:

<ion-content delegate-handle="articleDelegate">

<a id="comments-section"></a>

如果你的評論部分有一個id(例如id =“new-comment”),那么從頭版開始,你可以嘗試:

<a ng-click="goToComment()">...</a>

在控制器中:

$scope.goToComment = function() {
  return $state.go('whatever the comment state is',           {param:param}).then(function(state) {
    $location.hash('new-comment');
    $ionicScrollDelegate.anchorScroll(true)
  })
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM