<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ### 15.5. 實例 _ngResource_ 要舉一個實例是比較麻煩的事。因為它必須要一個后端來支持,這里如果我用 Python 寫一個簡單的后端,估計要讓這個后端跑起來對很多人來說都是問題。所以,我在幾套公共服務的 API 中糾結考察了一番,最后使用 [www.rememberthemilk.com](http://www.rememberthemilk.com) 的 API 來做了一個簡單的,可用的例子。 例子見: [http://zouyesheng.com/demo/ng-resource-demo.html](http://zouyesheng.com/demo/ng-resource-demo.html) (可以直接下載看源碼) 先說一下 API 的情況。這里的請求調用全是跨域的,所以交互上全部是使用了 JSONP 的形式。 API 的使用有使用簽名認證機制,嗯, js 中直接算 md5 是可行的,我用了一個現成的庫(但是好像不能處理中文吧)。 這個例子中的 `LoginCtrl` 大家就不用太關心了,參見官方的文檔,走完流程拿到 _token_ 完事。與 _ngResource_ 相關的是 `MainCtrl` 中的東西。 其實從這個例子中就可以看出,目前 _ngResource_ 的機制對于服務端返回的數據的格式是嚴重依賴的,同時也可以反映出 _$http_ 對一些場景根本無法應對的局限。所以,我現在的想法是理解 _ngResource_ 的思想,真正需要的人自己使用 _jQuery_ 重新實現一遍也許更好。這應該也花不了多少時間, _ngResource_ 的代碼本來不多。 我為什么說 _$http_ 在一些場景中有局限呢。在這個例子當中,所有的請求都需要帶一個簽名,簽名值是由請求中帶的參數根據規則使用 md5 方法計算出的值。我找不到一個 hook 可以讓我在請求出去之前修改這個請求(添加上簽名)。所以在這個例子當中,我的做法是根據 _ngResource_ 的請求最后會使用 _$httpBackend_ 這個底層服務,在 module 定義時我自己復制官方的相關代碼,重新定義 _$httpBackend_ 服務,在需要的地方做我自己的修改: script.src = sign_url(url); 不錯,我就改了這一句,但我不得不復制了 50 行官方源碼到我的例子中。 另外一個需要說的是對返回數據的處理。因為 _ngResource_ 會使用返回的數據直接填充實例,所以這個數據格式就很重要。 首先,我們可以使用 `$http.defaults.transformResponse` 來統一處理一下返回的數據,但是這并不能解決所有問題,可目前 _ngResource_ 并不提供對每一個 _action_ 的單獨的后處理回調函數項。除非你的服務端是經過專門的適應性設計的,否則你用 _ngResource_ 不可能爽。例子中,我為了獲取當前列表的結果,我不得不自己去封裝結果: var list_list = List.getList(function(){ var res = list_list[1]; while(list_list.length > 0){list_list.pop()}; angular.forEach(res.list, function(v){ list_list.push(new List({list: v})); }); $scope.list_list = list_list; $scope.show_add = true; return; });
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看