最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

AngularJS轉(zhuǎn)換響應(yīng)內(nèi)容

 更新時(shí)間:2016年01月27日 11:31:37   投稿:mrr  
這篇文章主要介紹了AngularJS轉(zhuǎn)換響應(yīng)內(nèi)容 的相關(guān)資料,需要的朋友可以參考下

從遠(yuǎn)程API獲取到的響應(yīng)內(nèi)容,通常是json格式的,有時(shí)候需要對(duì)獲取到的內(nèi)容進(jìn)行轉(zhuǎn)換,比如去除某些不需要的字段,給字段取別名,等等。

本篇就來(lái)體驗(yàn)在AngualrJS中如何實(shí)現(xiàn)。

在主頁(yè)面,還是從controller中拿數(shù)據(jù)。

<body ng-app="publicapi">
<ul ng-controller="controllers.View">
<li ng-repeat="repo in repos">
<b ng-bind="repo.userName"></b>
<span ng-bind="repo.url"></span>
</li>
</ul>
</body> 

以上,userName, url字段是從源數(shù)據(jù)中轉(zhuǎn)換而來(lái)的,可能userName對(duì)應(yīng)源數(shù)據(jù)中的fullName,可能源數(shù)據(jù)中有更多的字段。

在AngularJS中,把module之間的關(guān)系梳理清楚是一種很好的習(xí)慣,比如按如下方式梳理:

angular.module('publicapi.controllers',[]);
angular.module('publicapi.services',[]);
angular.module('publicapi.transformers',[]);
angular.module('publicapi',[
'publicapi.controllers',
'publicapi.services',
'publicapi.transformers'
]) 

數(shù)據(jù)還是從controller中來(lái):

angular.module('publicapi.controllers')
.controller('controllers.View',['$scope', 'service.Api', function($scope, api){
$scope.repos = api.getUserRepos("");
}]); 

controller依賴于service.Api這個(gè)服務(wù)。

angular.module('publicapi.services').factory('services.Api',['$q', '$http', 'services.transformer.ApiResponse', function($q, $http, apiResponseTransformer){
return {
getUserRepos: function(login){
var deferred = $q.defer();
$http({
method: "GET",
url: "" + login + "/repos",
transformResponse: apiResponseTransformer
})
.success(function(data){
deferred.resolve(data);
})
return deferred.promise;
}
};
}]) 

而$http服務(wù)中的transformResponse字段就是用來(lái)轉(zhuǎn)換數(shù)據(jù)源的。services.Api依賴于services.transformer.ApiResponse這個(gè)服務(wù),在這個(gè)服務(wù)力完成對(duì)數(shù)據(jù)源的轉(zhuǎn)換。

angular.module('publicapi.transformers').factory('services.transformer.ApiResponse', function(){
return function(data){
data = JSON.parse(data);
if(data.length){
data = _.map(data, function(repo){
return {userName: reop.full_name, url: git_url};
})
}
return data;
};
}); 

以上,使用了underscore對(duì)數(shù)據(jù)源進(jìn)行map轉(zhuǎn)換。

相關(guān)文章

最新評(píng)論

舒城县| 喀喇沁旗| 临高县| 哈尔滨市| 阿拉善盟| 凉山| 蒲江县| 桦甸市| 广丰县| 新巴尔虎右旗| 大渡口区| 犍为县| 商都县| 砀山县| 汉川市| 定远县| 嘉黎县| 吴忠市| 平塘县| 闵行区| 石首市| 新余市| 贵定县| 洛川县| 景德镇市| 抚州市| 莱西市| 拉萨市| 蕲春县| 昌乐县| 孟村| 淮滨县| 绍兴县| 阿鲁科尔沁旗| 旬阳县| 邢台市| 雷州市| 岳西县| 海阳市| 吉木乃县| 佛学|