### 15.1. 使用引入與整體概念
_ngResource_ 這個是 _ng_ 官方提供的一個附加模塊。附加的意思就是,如果你打算用它,那么你需要引入一人單獨的 js 文件,然后在聲明“根模塊”時注明依賴的 _ngResource_ 模塊,接著就可以使用它提供的 _$resource_ 服務了。完整的過程形如:
<!DOCTYPE html>
<html ng-app="Demo">
<head>
<meta charset="utf-8" />
<title>AngularJS</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.3/angular-resource.js"></script>
</head>
<body>
<div ng-controller="TestCtrl"></div>
<script type="text/javascript" charset="utf-8">
var app = angular.module('Demo', ['ngResource'], angular.noop);
app.controller('TestCtrl', function($scope, $resource){
console.log($resource);
});
</script>
</body>
</html>
_$resource_ 服務,整體上來說,比較像是使用類似 ORM 的方式來包裝了 AJAX 調用。區別就是 ORM 是操作數據庫,即拼出 SQL 語句之后,作 `execute` 方法調用。而 _$resource_ 的方式是構造出 AJAX 請求,然后發出請求。同時,AJAX 請求是需要回調處理的,這方面, _$resource_ 的機制可以使你在一些時候省掉回調處理,當然,是否作回調處理在于業務情形及容錯需求了。
使用上 _$resource_ 分成了“類”與“實例”這兩個層面。一般地,類的方法調用就是直觀的調用形式,通常會返回一個對象,這個對象即為“實例”。
“實例”貫穿整個服務的使用過程。“實例”的數據是填充方式,即因為異步關系,回調函數沒有執行時,實例已經存在,只是可能它還沒有相關數據,回調執行之后,相關數據被填充到實例對象當中。實例的方法一般就是在類方法名前加一個 _$_ ,調用上,根據定義,實例數據可能會做一些自動的參數填充,這點是區別實例與類的調用上的不同。
好吧,上面這些話可能需要在看了接下來的內容之后再回過來理解。
- Introduction
- 關于AngularJS
- 關于本文檔
- 開始的例子
- 依賴注入
- 作用域
- 數據綁定與模板
- 數據->模板
- 模板->數據
- 數據->模板->數據->模板
- 模板
- 定義模板內容
- 內容渲染控制
- 節點控制
- 事件綁定
- 表單控件
- 模板中的過濾器
- 排序 orderBy
- 過濾列表 filter
- 其它
- 例子:表頭排序
- 例子:搜索
- 錨點路由
- 路由定義
- 參數定義
- 業務處理
- 定義模板變量標識標簽
- AJAX
- HTTP請求
- 廣義回調管理
- 工具函數
- 上下文綁定
- 對象處理
- 類型判定
- 其它服務
- 日志
- 緩存
- 計時器
- 表達式函數化
- 模板單獨使用
- 自定義模塊和服務
- 模塊和服務的概念與關系
- 定義模塊
- 定義服務
- 引入模塊并使用服務
- 附加模塊 ngResource
- 使用引入與整體概念
- 基本定義
- 基本使用
- 定義和使用時的占位量
- 實例
- AngularJS與其它框架的混用(jQuery, Dojo)
- 自定義過濾器
- 自定義指令directive
- 指令的使用
- 指令的執行過程
- 基本的自定義方法
- 屬性值類型的自定義
- Compile的細節
- transclude的細節
- 把節點內容作為變量處理的類型
- 指令定義時的參數
- Attributes的細節
- 預定義的 NgModelController
- 預定義的 FormController
- 示例:文本框
- 示例:模板控制語句 for
- 示例:模板控制語句 if/else