第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

使用$ location.path但不重新加載ngView的AngularJS分頁(yè)

使用$ location.path但不重新加載ngView的AngularJS分頁(yè)

我的單頁(yè)應(yīng)用程序加載一個(gè)主頁(yè),并且我想顯示一系列想法。每個(gè)創(chuàng)意都顯示在動(dòng)畫(huà)Flash容器中,并顯示動(dòng)畫(huà)以在創(chuàng)意之間循環(huán)。使用$ http加載提示:$scope.flash = new FlashInterface scope:$scope,location:$location$http.get("/competition.json")  .success (data) ->    $scope.flash._init data但是,為了從歷史記錄導(dǎo)航和UX中受益,我希望更新地址欄以使用$ location為每個(gè)提示顯示正確的url:$location.path "/i/#{idea.code}"$scope.$apply()我在這里調(diào)用$ apply,因?yàn)榇耸录?lái)自AngularJS上下文,即Flash。我希望保留當(dāng)前的控制器/視圖,并且不重新加載視圖。這非常糟糕,因?yàn)橹匦录虞d視圖會(huì)導(dǎo)致整個(gè)Flash對(duì)象被丟棄,并且預(yù)加載器周期會(huì)再次開(kāi)始。我試過(guò)聽(tīng)$ routeChangeStart做一個(gè)preventDefault:$scope.$on "$routeChangeStart", (ev,next,current) ->  ev.preventDefault()$scope.$on "$routeChangeSuccess", (ev,current) ->  ev.preventDefault()但無(wú)濟(jì)于事。如果我能在更改$ location.path時(shí)想出一種重寫(xiě)視圖重載的方法,那么整個(gè)事情就很麻煩了。我仍然對(duì)AngularJS感到很滿意,因此我很高興能找到有關(guān)如何構(gòu)建應(yīng)用程序以實(shí)現(xiàn)我的目標(biāo)的任何指示!
查看完整描述

3 回答

?
慕仙森

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

無(wú)需更新路徑,只需使用頁(yè)碼更新查詢參數(shù)。


設(shè)置路由以忽略查詢參數(shù)更改:


....

$routeProvider.when('/foo', {..., reloadOnSearch: false})

....

并在您的應(yīng)用程序中更新$location:


...

$location.search('page', pageNumber);

...


查看完整回答
反對(duì) 回復(fù) 2019-12-25
?
絕地?zé)o雙

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超4個(gè)贊

從這篇博客文章:


默認(rèn)情況下,所有位置更改都會(huì)經(jīng)過(guò)路由過(guò)程,該過(guò)程會(huì)更新角度視圖。


但是,有一種簡(jiǎn)單的方法可以將其短路。Angular監(jiān)視位置更改(是否通過(guò)輸入位置欄,單擊鏈接或通過(guò)來(lái)設(shè)置位置來(lái)完成 $location.path())。當(dāng)感知到此更改時(shí),它將廣播事件$locationChangeSuccess,并開(kāi)始路由過(guò)程。我們要做的是捕獲事件并將路由重置為以前的狀態(tài)。


function MyCtrl($route, $scope) {

    var lastRoute = $route.current;

    $scope.$on('$locationChangeSuccess', function(event) {

        $route.current = lastRoute;

    });

}


查看完整回答
反對(duì) 回復(fù) 2019-12-25
?
犯罪嫌疑人X

TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊

我的解決方案是使用$ routeChangeStart,因?yàn)樗鼮槟峁┝恕跋乱粭l”和“最后一條”路線,您可以比較它們而無(wú)需像$ locationChangeSuccess那樣的額外變量。


好處是能夠訪問(wèn)“下一條”路徑和“最后一條”路徑上的“ params”屬性,例如next.params.yourproperty當(dāng)您使用“ / property / value” URL樣式時(shí),當(dāng)然$location.url還是使用或$location.path更改URL,$location.search()這取決于“?property = value” URL樣式。


在我的情況下,我不僅將它用于此目的,而且還防止控制器未更改而更改路由:


$scope.$on('$routeChangeStart',function(e,next,last){

  if(next.$$route.controller === last.$$route.controller){

    e.preventDefault();

    $route.current = last.$$route;

    //do whatever you want in here!

  }

});

我個(gè)人覺(jué)得AngularJS應(yīng)該提供一種控制它的方法,現(xiàn)在他們認(rèn)為,每當(dāng)您更改瀏覽器的位置時(shí),您都希望更改路線。


查看完整回答
反對(duì) 回復(fù) 2019-12-25
  • 3 回答
  • 0 關(guān)注
  • 1044 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)