国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

$translatePartialLoader加載失敗及解決方式

lbool / 2799人閱讀

摘要:按照官網的說法,在中添加模塊后必須刷新國際化數(shù)據,因此官方建議通過直接調用,或者監(jiān)聽所觸發(fā)的事件并調用這兩種方式來刷新數(shù)據。然而按照官網的寫法這兩者都是無效的。解決方式問題找到了,解決起來也簡單,在初始化完畢后強制刷新一次即可,代碼如下

前言

$translatePartialLoader(以下簡寫為TPL)是angular-translate中的局部加載器,由于該加載器可以以模塊為單位同時加載多個國際化文件,因此成為angular開發(fā)SAP必選的加載器。

問題

事實上,如果按照官網的教程來編寫,會出現(xiàn)TPL不生效的情況,具體表現(xiàn)為在config過程中添加模塊有效,但是在controller中添加模塊無效。
按照官網的說法,在controller中添加模塊后必須刷新國際化數(shù)據,因此官方建議通過直接調用$translate.refresh(),或者監(jiān)聽addPart所觸發(fā)的事件并調用refresh這兩種方式來刷新數(shù)據。然而按照官網的寫法這兩者都是無效的。

原理分析

國際化數(shù)據刷新過程中會根據變量$uses來判斷所當前使用的語言,如果當前$uses為空,則放棄這部分操作。而$uses會在translate模塊初始化過程中被賦值,因此如果當模塊尚未初始化完畢,$uses尚未被賦值時執(zhí)行刷新是無效的「注:其實不完全無效,這里涉及fallback,不做過多討論」。
而translate初始化過程中會調用指定的loader獲取數(shù)據,這個過程是一個異步操作,所以$uses的賦值也要等到異步操作完成后才行,在此期間會出現(xiàn)刷新失效。

解決方式

問題找到了,解決起來也簡單,在translate初始化完畢后強制刷新一次即可,代碼如下:

var initListener = $rootScope.$on("$translateChangeEnd", function () {
    initListener();
    $translate.refresh();
});

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/79300.html

相關文章

  • angular-translate

    //index.config.js angular .module(app) .config(config); /** @ngInject */ function config($logProvider, $translateProvider, $translatePartialLoaderProvider) { // Enable log $log...

    why_rookie 評論0 收藏0
  • 關于 Overtrue 的拼音庫 overtrue/pinyin 為何 travis 為 error

    摘要:官網內測申請方式提供個人企業(yè)聯(lián)系方式及認證信息實名企業(yè)營業(yè)執(zhí)照照片或掃描件及申請說明,發(fā)送郵件至即可獲得內測資格,申請從速。 showImg(https://segmentfault.com/img/bVP7c2?w=1440&h=379); 這是 https://github.com/overtrue/p... 首頁 README 中的持續(xù)集成狀態(tài)。 之前有朋友問我,這個 travi...

    ingood 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<