1. 程式人生 > >angularjs與server交互

angularjs與server交互

github 抽象方法 status 交互 移動應用 方法 求和 移動 dag

真正的應用須要和真實的server進行交互,移動應用和新興的Chrome桌面應用可能是個例外,可是對於此外的全部應用來說,不管你是想把數據持久化到雲端。還是須要與其它用戶進行實時交互。都須要讓應用與server進行交互。

為了實現這一點。Angular提供了一個叫做$http的服務。它提供了一個可擴展的抽象方法列表。使得與server的交互更加easy。

它支持HTTP、JSONP和CORS方式。它還包括了安全性支持。避免JSON格式的脆弱性和XSRF。它讓你能夠輕松地轉換請求和響應數據,甚至還實現了簡單的緩存。

例如,我們打算讓購物網站從server上獲取商品信息,而不是從內存假數據獲取。怎樣編寫服務端代碼已經超越了本書的範疇。所以,我們只來想象一下,例如說我們已經創建了一個server,當查詢/products 路徑時。它會以JSON格式返回一個商品列表。

返回的響應示比例如以下:
[
{
"id": 0,
"title": "Paint pots",
"description": "Pots full of paint",
"price": 3.95
},
{
"id": 1,
"title": "Polka dots",
"description": "Dots with that polka groove",
"price": 12.95
},
{
"id": 2,
"title": "Pebbles",
"description": "Just little rocks, really",
"price": 6.95
}
...etc...
]

我們能夠像以下這樣編寫查詢代碼:
function ShoppingController($scope, $http) {
$http.get(‘/products‘).success(function(data, status, headers, config) {
$scope.items = data;
});
}

然後在模板中這樣使用它:
<body ng-controller="ShoppingController">
<h1>Shop!</h1>
<table>
<tr ng-repeat="item in items">
<td>{{item.title}}</td>
<td>{{item.description}}</td>
<td>{{item.price | currency}}</td>
</tr>
</table>
</div>
</body>

正如我們前面講過的,從長遠來看,讓服務來代理與server交互的工作對我們有優點,這個服務能夠被多個控制器共享。

來自《AngularJS開發下一代Web應用》一書

在線版在https://github.com/edagarli/AngularJSWeb

angularjs與server交互