通過初識Angular.js可以做一個簡單的入門,下面開始做深入的了解吧。
作用域
作用域($scope)和應用的數據模型相關聯的,同時作用域也是表達式執行的上下文。$scope對象是定義應用業務邏輯、控制器方法和視圖屬性的地方。 作用域是視圖和控制器之間的膠水。在應用將視圖渲染並呈獻給用戶之前,視圖中的模板會和作用域進行連接,然后應用會對DOM進行設置以便將屬性變化通知給AngularJS。
基於動態綁定,我們在修改視圖數據時立刻更新$scope,而$scope發生變化時也會立刻渲染視圖。
<script type="text/javascript">
function loadController($scope) {
$scope.name = "博客園";
$scope.loadAgain = function () {
$scope.name = "我的博客";
};
};
</script>
<div ng-app>
<div ng-controller="loadController">
<input ng-model='name'/>
<button ng-click="loadAgain()">
切換</button>
<hr />
<span ng:bind="name"> <span ng:bind="name"></span>
<br />
<span ng_bind="name"> <span ng_bind="name"></span>
<br />
<span data-ng-bind="name"> <span data-ng-bind="name"></span>
<br />
<span x-ng-bind="name"> <span x-ng-bind="name"></span>
</div>
</div>
上面的代碼中,我們給一個 div 元素指定了一個loadController(控制器),那么div 元素之內,就是 loadController 這個函數運行時, $scope 這個注入資源的控制范圍。
在這個控制范圍內的html中,可以訪問到$scope的變量:$scope.name,函數$scope.loadAgain。
數據綁定和模板
前面已經講過了,在頁面作用域范圍內可以通過ng-model、ng-bind等之類的指令來綁定變量。
其實還可以使用{{name}}來完成數據綁定。
說說模板吧,模板的綁定有三種:
1.頁面內直接寫html代碼(前面的數據綁定就是了)
2.使用script標簽自定義模板,如下
<script type="text/javascript">
function tablelist($scope) {
$scope.userlist = [{ name: "張三", age: "23" }, { name: "李四", age: "25"}]
};
</script>
<script type="text/ng-template" id="tpl">
<table ng-controller="tablelist">
<tr>
<th>
姓名
</th>
<th>
年齡
</th>
</tr>
<tr ng-repeat="app in userlist">
<td>
{{app.name}}
</td>
<td>
{{app.age}}
</td>
</tr>
</table>
</script>
<div ng-include src="'tpl'"></div>
3.引用外部文件
新建test.html模板頁並清除所有代碼,粘貼如下代碼保存
<table ng-controller="tablelist">
<tr>
<th>
姓名
</th>
<th>
年齡
</th>
</tr>
<tr ng-repeat="app in userlist">
<td>
{{app.name}}
</td>
<td>
{{app.age}}
</td>
</tr>
</table>
當前頁直接引用test.html,<div ng-include src="'test.html'"></div>
效果都是一樣的:

模板引用中用到了 ng-include,還有渲染指令 ng-repeat把對象數組循環渲染到了頁面,ng-repeat還提供了幾個可使用的變量:
$index 當前索引
$first 是否為頭元素
$middle 是否為非頭非尾元素
$last 是否為尾元素
前段時間項目比較緊,一直沒有更新。現在也正准備換工作了,離開這有些不舍啊。
