2016-01-20 270 views
-1

我沒有什麼問題,我的代碼:UI路由器不加載狀態

https://github.com/burnpiro/angular-blog

現場版本可以在http://erdem.pl/#/

問題是,我的服務器路由部署之後沒有按」工作。 ui-router甚至不會嘗試將模板或控制器加載到ui-view中。應用程序啓動並配置被觸發(使用console.log進行嘗試)。即使在主頁狀態下的解析選項也被觸發(PostService)。但不知何故,它無法加載模板。如果我訪問手動模板:

erdem.pl/components/home/home.html

它的存在。與控制器一樣。如果有人有任何想法,請讓我知道。它在部署後發生。在此之前,在我的本地機器上它似乎工作正常,但現在再次獲取項目並將其部署在本地機器上後,它也有相同的錯誤。

沒有JS錯誤或任何網絡錯誤。

感謝您的幫助,

+0

檢查開發工具網絡中的所有請求。也許路徑需要修改 – charlietfl

回答

0

我不能完全肯定,但我認爲這個問題是你已經在你的config.js文件中設置的主機?這應該指向你的API所在的公共鏈接。應該是「http://erdem.pl」嗎?

我也注意到Restangular似乎沒有發送您的請求。我看到執行進入了RequestInterceptor,但我沒有在我的開發人員工具的「網絡」選項卡中看到它們。這意味着您的狀態中您的resolve屬性的承諾永遠不會解決。您的狀態配置爲在初始化控制器並加載模板之前等待這些resolve請求解析。

編輯:我想我找到了issue

看起來像Restangular只與Lodash 3.10兼容,之後的任何事情都會導致兼容性問題。降級到3.10,希望它適合你!

+0

我已經檢查過PostService中的Restangular,並且在調用Restangular.one('posts')之後,它會返回包含所有包裝的對象,但在調用Restangular.one('posts')。get()後,我沒有得到甚至承諾。我禁用了除家和服務以外的所有模塊,以確保它們都不會中斷任何事情。還從應用程序配置中刪除了errorInterceptor。有什麼想法爲什麼在調用get()之後Restangular可能不會返回promise? – piro

+0

好吧,我想我可能找到了它?你有使用lodash而不是underscore.js的原因嗎?當我嘗試從控制檯運行'Restangular.one('posts')。post('search',{limit:11})'時發現了一個JS錯誤,它解釋了_.contains()函數未定義。如果你使用underscore.js而不是lodash,我認爲它可能會解決Restangular的問題。看起來它應該與兩者兼容,但對Restangular或Lodash的更新已導致一些不兼容問題。如果你真的想使用Lodash,我會建議在他們的GitHub頁面上發佈一個問題。 –

+0

非常感謝:)這有幫助。我甚至不認爲這是由lodash版本引起的。 – piro