Angular route 和 anchor 衝突解決

Angular好像沒有針對這個問題特殊處理,估計他們也沒有好的辦法。
.when({....}).otherwise({....}
在配置路由的時候,otherwrie中通常會配置默認的地址,即便不配置otherwise,Angular也會清除ng-view中的內容。

當使用anchor的時候每次觸發錨點,就會修改hash,接着angular就會觸發‘路由’處理,這樣就致使二者衝突,頁面內容發生改變。 瀏覽器

解決方式是,寫一個指令,攔截錨點的瀏覽器默認行爲,手動設置要滾動的距離。 spa

link:function(scope,element,attrs){
      element.bind('click',function(e){
      e.stopPropagation(); 
      var scrollToElement= $('#'+attrs.scrollToElementId);
      window.scrollTo(0,endElement.offset().top); 
   });
}
相關文章
相關標籤/搜索