2013-04-21 117 views
9

我正在做一個與jQuery Mobile和Angular.js的應用程序。因爲我們在使用這兩個庫時遇到了一些問題,所以存在執行「teh工作」的adapterAngular.js與jQuery Mobile

所以我試圖使用routeProvider路由我的網頁。但我仍然無法使用這個呈現網頁。

在這裏,如果你能幫我指路。

http://plnkr.co/edit/DNGiT83csWMmfYnHXOop

提前感謝!

+0

第8行出現錯誤,如果您修復該錯誤,頁面呈現效果會很好。 – 2013-04-22 00:31:44

+0

有趣...我修復它..但與脫機適配器不起作用。只是在雲... – 2013-04-22 01:37:26

回答

14

我遇到了類似的問題,也許我學到的東西可能會幫助你。它歸結爲角度和jQuery從一個頁面/部分到另一個(路由)的方式的差異。

首先,基本知識:角度路由通過插入一塊html到你的視圖,然後在任何點擊/動作/等等,從視圖中刪除該html,並添加一個新的HTML塊。基本上你總是在同一頁面上;只是包含的html正在改變。相反,將jqm視爲將所有html加載到同一頁面中,並將這些html塊加載爲div。而不是去除html塊並替換它們(通過路由),它只是關閉和打開div。 (有多頁的jqm應用程序,但是SPA真的強調了這些差異。)

我的建議是選擇你真正想要的功能集:角度的簡約加載(只在你需要的時候)或者jqm的華而不實的轉換和其他內置功能。如果你有一個大量的應用程序,每個頁面上都有大量的數據,你可能想繞過jqm並單獨使用angular,看看你可以用angular的新動畫函數做些什麼。這意味着您需要構建(通過CSS或JavaScript)jqm功能的重複項 - 從我所看到的,您可以關閉它,但不會像jqm那樣令人愉快地簡化。

如果jqm內置功能是您真正想要的,那麼請跳過使用angular的路由。無論如何,它只會引入各種併發症。使用jqm的模式設置您的頁面,並僅在您處理數據的位置使用角度。

我發現的最好的方法就是把它當作整體的jqm應用程序來處理,並且只將角度添加到需要它的部分。畢竟,你不必在html行添加ng-app;您可以根據需要將其添加到單個div中。由於jqm作爲一個系統範圍的東西是最快樂的,而角度恰好被限制在系統內部,所以我發現jqm-whole和angular-parts是最簡單的方法,世界。

+0

你好kl02,非常好,詳細的答案。我即將開始一個使用提到的庫的新項目,我會按照你的建議來做,我想它會工作。同時,您是否有任何現場樣本或小型項目來展示開始? – 2013-07-11 03:11:12

+0

對不起,還沒有把它在網上呢。本週末我會盡力做一個小小的演示來演示。 – kl02 2013-07-19 17:49:55