<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 15.3. 基本使用 在定義了資源之后,我們看如果使用這些資源,發出請求: var book = Book.read({id: '123'}, function(response){ console.log(response); }); 這里我們進行 _Book_ 的“類”方法調用。在方法的使用上,根據官方文檔: HTTP GET "class" actions: Resource.action([parameters], [success], [error]) non-GET "class" actions: Resource.action([parameters], postData, [success], [error]) non-GET instance actions: instance.$action([parameters], [success], [error]) 我們這里是第二種形式,即類方法的非 GET 請求。我們給的參數會作為 `postData` 傳遞。如果我們需要 GET 參數,并且還需要一個錯誤回調,那么: var book = Book.read({get: 'haha'}, {id: '123'}, function(response){ console.log(response); }, function(error){ console.log(error); } ); 調用之后,我們會立即得到的 `book` ,它是 Book 類的一個實例。這里所謂的實例,實際上就是先把所有的 _action_ 加一個 **$** 前綴放到一個空對象里,然后把發出的參數填充進去。等請求返回了,把除 _action_ 以外的成員刪除掉,再把請求返回的數據填充到這個對象當中。所以,如果我們這樣: var book = Book.read({id: '123'}, function(response){ console.log(book); }); console.log(book) 就能看到 `book` 實例的變化過程了。 現在我們得到一個真實的實例,看一下實例的調用過程: //響應的數據是 {result: 0, msg: '', obj: {id: 'xxx'}} var book = Book.create({title: '測試標題', author: '測試作者'}, function(response){ console.log(book); }); 可以看到,在請求回調之后, `book` 這個實例的成員已經被響應內容填充了。但是這里有一個問題,我們返回的數據,并不適合一個 book 實例。格式先不說,它把 `title` 和 `author` 這些信息都丟了(因為響應只返回了 `id` )。 如果僅僅是格式問題,我們可以通過配置 _$http_ 服務來解決( AJAX 請求都要使用 _$http_ 服務的): $http.defaults.transformResponse = function(data){return angular.fromJson(data).obj}; 當然,我們也可以自己來解決一下丟信息的問題: var p = {title: '測試標題', author: '測試作者'}; var book = Book.create(p, function(response){ angular.extend(book, p); console.log(book); }); 不過,始終會有一些不方便了。比較正統的方式應該是調節服務器端的響應,讓服務器端也具有和前端一樣的實例概念,返回的是完整的實例信息。即使這樣,你也還要考慮格式的事。 現在我們得到了一個真實的 `book` 實例了,帶有 `id` 信息。我們嘗試一下實例的方法調用,先回過去頭看一下那三種調用形式,對于實例只有第三種形式: non-GET instance actions: instance.$action([parameters], [success], [error]) 首先解決一個疑問,如果一個實例是進行一個 GET 的調用會怎么樣?沒有任何問題,這當然沒有任何問題的,形式和上面一樣。 如何實例是做 POST 請求的話,從形式上看,我們無法控制請求的 _postData_ ?是的,所有的 POST 請求,其 _postData_ 都會被實例數據自動填充,形式上我們只能控制 _params_ 。 所以,如果是在做修改調用的話: book.$update({title: '新標題', author: '測試作者'}, function(response){ console.log(book); }); 這樣是沒有意義的并且錯誤的。因為要修改的數據只是作為 GET 參數傳遞了,而 `postData` 傳遞的數據就是當前實例的數據,并沒有任何修改。 正確的做法: book.title = '新標題' book.$update(function(response){ console.log(book); }); 顯然,這種情況下,回調都可以省了: book.title = '新標題' book.$update();
                  <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>

                              哎呀哎呀视频在线观看