restangular一點用法小記錄


1.Restangular依賴Lo-Dash或Underscore,因此為了確保Restangular可以正常運行,需要引入這兩個庫中的一個。

<script type="text/javascript" src="js/angular.js"></script>
<script type="text/javascript" src="js/lodash.js"></script>
<script type="text/javascript" src="js/restangular.js"></script>

2.項目中用Restangular:

var app=angular.module("myApp",["restangular"]);//此處的restangular首字母必須小寫,否則報錯
app.controller("myCtrl",function($scope,Restangular){}//此處的restangular首字母必須大寫,否則報錯

3.Restangular的方法測試

前端請求頁面

app.controller("myCtrl",function($scope,Restangular){
    //get請求
    Restangular.all("get").get({}).then(function(data){
        console.log(JSON.stringify(data));//[{"name":"張飛111"},{"name":"關羽111"}]
  })
    Restangular.all("get",147).get({}).then(function(data){
        console.log(JSON.stringify(data));//[{"name":"張飛111"},{"name":"關羽111"}]
    })
    Restangular.one("get",123).get({}).then(function(data){
        console.log(JSON.stringify(data));//[{"name":"劉備"},{"name":"曹操"}]
  })

    //post請求
    Restangular.all("post").post().then(function(data){
        console.log(JSON.stringify(data));//[{"age":"27"}]
   })
    Restangular.one("post",456).post().then(function(data){
        console.log(JSON.stringify(data));//[{"age":"29"}]
    })
})

后端處理請求頁面

router.get('/get', function(req, res, next) {
 console.log(req.query);//獲取直接get方式附在url?之后key=value形式的參數 xxx.xx?y=x res.send(
'[{"name":"張飛111"},{"name":"關羽111"}]'); }); router.get('/get/147', function(req, res, next) { res.send('[{"name":"張飛147"},{"name":"關羽147"}]'); }); router.get('/get/123', function(req, res, next) { res.send('[{"name":"劉備"},{"name":"曹操"}]'); }); router.post('/post', function(req, res, next) { res.send('[{"age":"27"}]'); }); router.post('/post/456', function(req, res, next) { res.send('[{"age":"29"}]'); });

打印結果:

總結:

  ①、Restangular的All方法會讓所有的HTTP請求將首個字符串作為路徑來請求數據,第二個字符串將不起作用。例如Restangular.all("get",147)請求路徑實際還是'/get'

  ②、Restangular的One方法通過單個對象來發送嵌套的請求,路徑按參數順序用"/"分隔,例如Restangular.one("get",123)請求路徑就是'/get/123'

  ③、Restangular是get請求還是post請求與all或one方法無關,與all或one方法后的get或post方法有關。

  ④、Restangular.all("get").get("")就是get請求,get方法內傳的是請求的對象,對應的是url?后的參數值,如{"name":"lily"}則表示get請求的url為xxx?name=lily,如果是空對象,就表示不傳參,如果不傳對象,傳字符串,Restangular會自動分隔解析成對象的形式。例如get("555"),會被解析成{"0":5,"1":5,"2":5}。如果不傳參數,也會被解析成傳的空對象。

  ⑤、Restangular.all("post").post()是post請求。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM