## Angular學習筆記(1)html
## AngularJS 表達式jquery
1. AngularJS 表達式寫在雙大括號內:{{ expression }}。
2. AngularJS 表達式把數據綁定到 HTML,這與 ng-bind 指令有殊途同歸之妙。
3. AngularJS 將在表達式書寫的位置"輸出"數據。
4. AngularJS 表達式 很像 JavaScript 表達式:它們能夠包含文字、運算符和變量。
5. ng-init不經常使用,後面初始化數據都是放在控制器中express
## AngularJS 數字bootstrap
<div ng-app="" ng-init="quantity=1;cost=5"> <p>總價: {{ quantity * cost }}</p> //兩種方式 <p>總價: <span ng-bind="quantity * cost"></span></p> </div>
## AngularJS 字符串數組
<div ng-app="" ng-init="firstName='John';lastName='Doe'"> <p>姓名: {{ firstName + " " + lastName }}</p> //兩種方式 <p>姓名: <span ng-bind="firstName + ' ' + lastName"></span></p> </div>
## AngularJS 對象瀏覽器
<div ng-app="" ng-init="person={firstName:'John',lastName:'Doe'}"> <p>姓爲 {{ person.lastName }}</p> <p>姓爲 <span ng-bind="person.lastName"></span></p> </div>
AngularJS 數組安全
<div ng-app="" ng-init="points=[1,15,19,2,40]"> <p>第三個值爲 {{ points[2] }}</p> <p>第三個值爲 <span ng-bind="points[2]"></span></p> </div>
## AngularJS 表達式 與 JavaScript 表達式服務器
## AngularJS 指令app
1. ng-app 指令
2. ng-app 指令定義了 AngularJS 應用程序的 根元素。
3. ng-app 指令在網頁加載完畢時會自動引導(自動初始化)應用程序。
4. ng-init 指令
5. ng-init 指令爲 AngularJS 應用程序定義了 初始值。
6. 一般狀況下,不使用 ng-init。您將使用一個控制器或模塊來代替它。
7. ng-model 指令
8. ng-model 指令 綁定 HTML 元素 到應用程序數據。iphone
ng-model指令也能夠:爲應用程序數據提供類型驗證(number、email、required)。爲應用程序數據提供狀態(invalid、dirty、touched、error)。爲HTML 元素提供 CSS 類。 綁定 HTML 元素到 HTML 表單。ng-model 指令能夠將輸入域的值與 AngularJS 建立的變量綁定。
<div ng-app="myApp" ng-controller="myCtrl"> 名字: <input ng-model="name"> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.name = "John Doe"; }); </script>
雙向綁定,在修改輸入域的值時, AngularJS 屬性的值也將修改:
<div ng-app="myApp" ng-controller="myCtrl"> 名字: <input ng-model="name"> <h1>你輸入了: {{name}}</h1> </div> 驗證用戶輸入 <form ng-app="" name="myForm"> Email: <input type="email" name="myAddress" ng-model="text"> <span ng-show="myForm.myAddress.$error.email">不是一個合法的郵箱地址</span> </form> ng-model 指令能夠爲應用數據提供狀態值(invalid, dirty, touched, error): <form ng-app="" name="myForm" ng-init="myText = 'test@runoob.com'"> Email: <input type="email" name="myAddress" ng-model="myText" required></p> <h1>狀態</h1> {{myForm.myAddress.$valid}} {{myForm.myAddress.$dirty}} {{myForm.myAddress.$touched}} </form> > ng-model 指令基於它們的狀態爲 HTML 元素提供了 CSS 類: <style> input.ng-invalid { background-color: lightblue; } </style> <body> <form ng-app="" name="myForm"> 輸入你的名字: <input name="myAddress" ng-model="text" required> </form>
> ng-model 指令根據表單域的狀態添加/移除如下類: ng-empty ng-not-empty ng-touched
> ng-untouched ng-valid ng-invalid ng-dirty ng-pending ng-pristine
1. ng-repeat 指令
ng-repeat 指令對於集合中(數組中)的每一個項會 克隆一次 HTML 元素。 建立自定義的指令 你可使用 .directive
函數來添加自定義的指令。 要調用自定義指令,HTML 元素上須要添加自定義指令名。 使用駝峯法來命名一個指令,
runoobDirective, 但在使用它時須要以 - 分割, runoob-directive:
<body ng-app="myApp"> <runoob-directive></runoob-directive> <script> var app = angular.module("myApp", []); app.directive("runoobDirective", function() { return { template : "<h1>自定義指令!</h1>" }; }); </script> </body>
你能夠經過如下方式來調用指令:
限制使用
> 你能夠限制你的指令只能經過特定的方式來調用。 經過添加 restrict 屬性,並設置值爲 "A", 來設置指令只能經過屬性的方式來調用:
var app = angular.module("myApp", []); app.directive("runoobDirective", function() { return { restrict : "A", template : "<h1>自定義指令!</h1>" }; });
restrict 值能夠是如下幾種:
> E 做爲元素名使用 A 做爲屬性使用
> C 做爲類名使用 M 做爲註釋使用
> restrict 默認值爲 EA,
> 便可以經過元素名和屬性名來調用指令。
ng-disabled 指令
> ng-disabled 指令直接綁定應用程序數據到 HTML 的 disabled 屬性。
<div ng-app="" ng-init="mySwitch=true"> <button ng-disabled="mySwitch">點我!</button> <input type="checkbox" ng-model="mySwitch">按鈕 {{ mySwitch }} </div>
實例講解:
> ng-disabled 指令綁定應用程序數據 "mySwitch" 到 HTML 的 disabled 屬性。
> ng-model 指令綁定"mySwitch" 到 HTML input checkbox 元素的內容(value)。
若是 mySwitch 爲true, 按鈕將不可用:
<button disabled>點我!</button> 若是 mySwitch 爲false, 按鈕則可用: <button>點我!</button>
ng-show 指令
ng-show 指令隱藏或顯示一個 HTML 元素。
<p ng-show="true">我是可見的。</p> <p ng-show="false">我是不可見的。</p>
ng-show 指令根據 value 的值來顯示(隱藏)HTML 元素。
你可使用表達式來計算布爾值( true 或 false):
<div ng-app="" ng-init="hour=13"> <p ng-show="hour > 12">我是可見的。</p> </div>
ng-hide 指令
> ng-hide 指令用於隱藏或顯示 HTML 元素。 <p ng-hide="true">我是不可見的。</p> <p ng-hide="false">我是可見的。</p>
指令 描述
## AngularJS 事件
AngularJS 支持如下事件:
> ng-click
> ng-dbl-click
> ng-mousedown
> ng-mouseenter
> ng-mouseleave
> ng-mousemove
> ng-keydown
> ng-keyup
> ng-keypress
> ng-change
> ng-click 指令
> ng-click 指令定義了
AngularJS 點擊事件。
<div ng-app="" ng-controller="myCtrl"> <button ng-click="count = count + 1">點我!</button> <p>{{ count }}</p> </div>
隱藏 HTML 元素
> ng-hide 指令用於設置應用部分是否可見。
>
> ng-hide="true" 設置 HTML 元素不可見。
>
> ng-hide="false" 設置 HTML 元素可見。
顯示 HTML 元素
> ng-show 指令可用於設置應用中的一部分是否可見 。
> ng-show="false" 能夠設置 HTML 元素 不可見。
> ng-show="true" 能夠以設置 HTML 元素可見。
如下實例使用了 ng-show 指令:
<div ng-app="myApp" ng-controller="personCtrl"> <button ng-click="toggle()">隱藏/顯示</button> <p ng-hide="myVar"> 名: <input type="text" ng-model="firstName"><br> 姓名: <input type="text" ng-model="lastName"><br> Full Name: {{firstName + " " + lastName}} </p> </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) { $scope.firstName = "John", $scope.lastName = "Doe" $scope.myVar = false; $scope.toggle = function() { $scope.myVar = !$scope.myVar; }; }); </script>
應用解析:
> 第一部分 personController與控制器章節相似。
> 應用有一個默認屬性: $scope.myVar = false;
> ng-hide 指令設置 p元素及兩個輸入域是否可見, 根據 myVar 的值 (true 或 false) 來設置是否可見。
> toggle() 函數用於切換 myVar 變量的值(true 和 false)。 ng-hide="true" 讓元素 不可見。
AngularJS 驗證屬性
> $dirty
> $invalid
> $error
`
AngularJS 全局 API / 轉換
> API 描述
> angular.lowercase() 將字符串轉換爲小寫
> angular.uppercase() 將字符串轉換爲大寫
> angular.copy() 數組或對象深度拷貝
> angular.forEach() 對象或數組的迭代函數
比較
API 描述
> angular.isArray() 若是引用的是數組返回 true
> angular.isDate() 若是引用的是日期返回 true
> angular.isDefined() 若是引用的已定義返回 true
> angular.isElement() 若是引用的是 DOM元素返回 true
> angular.isFunction() 若是引用的是函數返回 true
> angular.isNumber()若是引用的是數字返回 true
> angular.isObject() 若是引用的是對象返回 true
> angular.isString()若是引用的是字符串返回 true
> angular.isUndefined() 若是引用的未定義返回 true
> angular.equals() 若是兩個對象相等返回 true
JSON
API 描述
> angular.fromJson() 反序列化 JSON 字符串
> angular.toJson() 序列化 JSON 字符串
基礎
API 描述
> angular.bootstrap() 手動啓動 AngularJS
> angular.element() 包裹着一部分DOM element或者是HTML字符串,把它做爲一個jQuery元素來處理。
> angular.module() 建立,註冊或檢索 AngularJS 模塊
AngularJS 控制器
AngularJS 應用程序被控制器控制。
> ng-controller 指令定義了應用程序控制器。
> 控制器是 JavaScript 對象,由標準的 JavaScript 對象的構造函數建立。
<div ng-app="myApp" ng-controller="myCtrl"> 名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{firstName + " " + lastName}} </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; }); </script>
應用解析:
> AngularJS 應用程序由 ng-app 定義。應用程序在 div 內運行。
> ng-controller="myCtrl" 屬性是一個 AngularJS 指令。用於定義一個控制器。
> myCtrl 函數是一個 JavaScript 函數。
>AngularJS 使用$scope 對象來調用控制器。
> 在 AngularJS 中, $scope 是一個應用對象(屬於應用變量和函數)。
> 控制器的 $scope至關於做用域、控制範圍)用來保存AngularJS Model(模型)的對象。
> 控制器在做用域中建立了兩個屬性 (firstName 和 lastName)。
> ng-model 指令綁定輸入域到控制器的屬性(firstName 和 lastName)。
> 控制器方法
> 上面的實例演示了一個帶有 lastName 和 firstName 這兩個屬性的控制器對象。
控制器也能夠有方法(變量和函數):
<div ng-app="myApp" ng-controller="personCtrl"> 名: <input type="text" ng-model="firstName"><br> 姓: <input type="text" ng-model="lastName"><br> <br> 姓名: {{fullName()}} </div> <script> var app = angular.module('myApp', []); app.controller('personCtrl', function($scope) { $scope.firstName = "John"; $scope.lastName = "Doe"; $scope.fullName = function() { return $scope.firstName + " " + $scope.lastName; } }); </script>
外部文件中的控制器
在大型的應用程序中,一般是把控制器存儲在外部文件中。
只須要把 <script> 標籤中的代碼複製到名爲 personController.js 的外部文件中便可:
<div ng-app="myApp" ng-controller="personCtrl"> First Name: <input type="text" ng-model="firstName"><br> Last Name: <input type="text" ng-model="lastName"><br> <br> Full Name: {{firstName + " " + lastName}} </div> <script src="personController.js"></script>
表達式中添加過濾器
<div ng-app="myApp" ng-controller="personCtrl"> uppercase 過濾器將字符串格式化爲大寫: <p>姓名爲 {{ lastName | uppercase }}</p> lowercase 過濾器將字符串格式化爲小寫: <p>姓名爲 {{ lastName | lowercase }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'} ]; }); </script> currency 過濾器 <div ng-app="myApp" ng-controller="costCtrl"> <input type="number" ng-model="quantity"> <input type="number" ng-model="price"> currency 過濾器將數字格式化爲貨幣格式: <p>總價 = {{ (quantity * price) | currency }}</p> </div> <script> var app = angular.module('myApp', []); app.controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'} ]; }); </script> 向指令添加過濾器 <div ng-app="myApp" ng-controller="namesCtrl"> <ul> orderBy 過濾器根據表達式排列數組: <li ng-repeat="x in names | orderBy:'country'"> {{ x.name + ', ' + x.country }} </li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'} ]; }); </script> 過濾輸入 輸入過濾器能夠經過一個管道字符(|)和一個過濾器添加到指令中,該過濾器後跟一個冒號和一個模型名稱。 <div ng-app="myApp" ng-controller="namesCtrl"> <p><input type="text" ng-model="test"></p> <ul> filter 過濾器從數組中選擇一個子集: <li ng-repeat="x in names | filter:test | orderBy:'country'"> {{ (x.name | uppercase) + ', ' + x.country }} </li> </ul> </div> <script> var app = angular.module('myApp', []); app.controller('namesCtrl', function($scope) { $scope.names = [ {name:'Jani',country:'Norway'}, {name:'Hege',country:'Sweden'}, {name:'Kai',country:'Denmark'} ]; }); </script> 自定義過濾器 如下實例自定義一個過濾器 reverse,將字符串反轉: <div ng-app="myApp" ng-controller="myCtrl"> 姓名: {{ msg | reverse }} </div> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.msg = "Runoob"; }); app.filter('reverse', function() { //能夠注入依賴 return function(text) { return text.split("").reverse().join(""); } }); //運行結果:boonuR
過濾器相關
一、uppercase,lowercase 大小寫轉換
{{ "lower cap string" | uppercase }} // 結果:LOWER CAP STRING
{{ "TANK is GOOD" | lowercase }} // 結果:tank is good
二、date 格式化
{{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25
三、number 格式化(保留小數)
{{149016.1945000 | number:2}}
四、currency貨幣格式化
{{ 250 | currency }} // 結果:$250.00
{{ 250 | currency:"RMB ¥ " }} // 結果:RMB ¥ 250.00
五、filter查找
輸入過濾器能夠經過一個管道字符(|)和一個過濾器添加到指令中,該過濾器後跟一個冒號和一個模型名稱。
filter 過濾器從數組中選擇一個子集
// 查找name爲iphone的行
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | filter:{'name':'iphone'} }}
六、limitTo 截取
{{"1234567890" | limitTo :6}} // 從前面開始截取6位
{{"1234567890" | limitTo:-4}} // 從後面開始截取4位
七、orderBy 排序
// 根id降序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id':true }}
// 根據id升序排
{{ [{"age": 20,"id": 10,"name": "iphone"},
{"age": 12,"id": 11,"name": "sunm xing"},
{"age": 44,"id": 12,"name": "test abc"}
] | orderBy:'id' }}
實例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/angular.js/1.6.3/angular.min.js"></script> </head> <body> <div ng-app=""> <p>一、uppercase,lowercase 大小寫轉換</p> {{ "lower cap string" | uppercase }}<br> {{ "TANK is GOOD" | lowercase }} <p>二、date 格式化</p> {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} <p>三、number 格式化(保留小數)</p> {{149016.1945000 | number:2}} <p>四、currency貨幣格式化</p> {{ 250 | currency }} <br> {{ 250 | currency:"RMB ¥ " }} <p>五、filter查找</p> <p>查找name爲iphone的行</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | filter:{'name':'iphone'} }} <p>六、limitTo 截取</p> {{"1234567890" | limitTo :6}}<br> {{"1234567890" | limitTo:-4}} <p>七、orderBy 排序</p> <p>根id降序排</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id':true }} <p>根據id升序排</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id' }} </div> </body> </html>
什麼是服務?
> 在 AngularJS 中,服務是一個函數或對象,可在你的 AngularJS 應用中使用。 AngularJS 內建了30 多個服務。
有個 $location 服務,它能夠返回當前頁面的 URL 地址。
實例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/angular.js/1.6.3/angular.min.js"></script> </head> <body> <div ng-app=""> <p>一、uppercase,lowercase 大小寫轉換</p> {{ "lower cap string" | uppercase }}<br> {{ "TANK is GOOD" | lowercase }} <p>二、date 格式化</p> {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} <p>三、number 格式化(保留小數)</p> {{149016.1945000 | number:2}} <p>四、currency貨幣格式化</p> {{ 250 | currency }} <br> {{ 250 | currency:"RMB ¥ " }} <p>五、filter查找</p> <p>查找name爲iphone的行</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | filter:{'name':'iphone'} }} <p>六、limitTo 截取</p> {{"1234567890" | limitTo :6}}<br> {{"1234567890" | limitTo:-4}} <p>七、orderBy 排序</p> <p>根id降序排</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id':true }} <p>根據id升序排</p> {{ [{"age": 20,"id": 10,"name": "iphone"}, {"age": 12,"id": 11,"name": "sunm xing"}, {"age": 44,"id": 12,"name": "test abc"} ] | orderBy:'id' }} </div> </body> </html>
爲何使用服務?
> 在不少服務中,好比 $location 服務,它可使用 DOM 中存在的對象,相似 window.location 對象,但
> window.location 對象在 AngularJS 應用中有必定的侷限性。
>
> AngularJS 會一直監控應用,處理事件變化, AngularJS 使用 $location 服務比使用 window.location
> 對象更好。
**$location **vs** window.location**
window.location//$location.service 目的 容許對當前瀏覽器位置進行讀寫操做 容許對當前瀏覽器位置進行讀寫操做
API 暴露一個能被讀寫的對象 暴露jquery風格的讀寫器
是否在AngularJS應用生命週期中和應用整合 否 可獲取到應用生命週期內的每個階段,而且和$watch整合
是否和HTML5 API的無縫整合 否 是(對低級瀏覽器優雅降級)
和應用的上下文是否相關 否,window.location.path返回"/docroot/actual/path" 是,$location.path()返回"/actual/path"
$http 是 AngularJS 應用中最經常使用的服務。 服務向服務器發送請求,應用響應服務器傳送過來的數據。
實例
使用 $http 服務向服務器請求數據:
<p>歡迎信息:</p> <h1>{{myWelcome}}</h1> </div> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $http) { $http.get("welcome.htm").then(function (response) { $scope.myWelcome = response.data; }); });
AngularJS $timeout 服務對應了 JS window.setTimeout 函數。
實例
<p>兩秒後顯示信息:</p> <h1>{{myHeader}}</h1> </div> <p>$timeout 訪問在規定的毫秒數後執行指定函數。</p> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $timeout) { $scope.myHeader = "Hello World!"; $timeout(function () { $scope.myHeader = "How are you today?"; }, 2000); });
AngularJS $interval 服務對應了 JS window.setInterval 函數。
實例
每一秒顯示信息 <p>如今時間是:</p> <h1>{{theTime}}</h1> </div> <p>$interval 訪問在指定的週期(以毫秒計)來調用函數或計算表達式。</p> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope, $interval) { $scope.theTime = new Date().toLocaleTimeString(); $interval(function () { $scope.theTime = new Date().toLocaleTimeString(); }, 1000); });
你能夠建立自定義服務,連接到你的模塊中:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script> </head> <body> <div ng-app="myApp" ng-controller="myCtrl"> <p>255 的16進制是:</p> <h1>{{hex}}</h1> </div> <p>自定義服務,用於轉換16進制數:</p> <script> var app = angular.module('myApp', []); app.service('hexafy', function() { this.myFunc = function (x) { return x.toString(16); } }); app.controller('myCtrl', function($scope, hexafy) { $scope.hex = hexafy.myFunc(255); }); </script> </body> </html>
使用 ng-options 建立選擇框
使用 ng-options指令,選擇的值是一個對象:當選擇值是一個對象時,咱們就能夠獲取更多信息,應用也更靈活。
在 AngularJS 中咱們可使用 ng-option 指令來建立一個下拉列表,列表項經過對象和數組循環輸出,以下實例:
<div ng-app="myApp" ng-controller="myCtrl"> <select ng-init="selectedName = names[0]" ng-model="selectedName" ng-options="x for x in names"> </select> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.names = ["Google", "Runoob", "Taobao"]; }); </script>
**ng-options 使用對象有很大的不一樣,以下所示:**
實例
使用對象做爲數據源, x 爲鍵(key), y 爲值(value):
你選擇的值爲在 key-value 對中的 value。 value 在 key-value 對中也能夠是個對象:
<select ng-model="selectedSite" ng-options="x for (x, y) in sites"> </select> <h1>你選擇的值是: {{selectedSite}}</h1>
你選擇的值爲在 key-value 對中的 value。 value 在 key-value 對中也能夠是個對象:
實例
選擇的值在 key-value 對的 value 中, 這是它是一個對象:
$scope.cars = {
car01 : {brand : "Ford", model : "Mustang", color : "red"},
car02 : {brand : "Fiat", model : "500", color : "white"},
car03 : {brand : "Volvo", model : "XC90", color : "black"}
};
在下拉菜單也能夠不使用 key-value 對中的 key , 直接使用對象的屬性:
<select ng-model="selectedCar" ng-options="y.brand for (x, y) in cars"> </select>
咱們也可使用ng-repeat 指令來建立下拉列表:ng-repeat 有侷限性,選擇的值是一個字符串:
ng-repeat指令是經過數組來循環 HTML 代碼來建立下拉列表,
但 ng-options 指令更適合建立下拉列表,它有如下優點:
使用ng-options 的選項是一個對象, ng-repeat 是一個字符串。
<div ng-app="myApp" ng-controller="myCtrl"> <select> <option ng-repeat="x in names">{{x}}</option> </select> </div> <script> var app = angular.module('myApp', []); app.controller('myCtrl', function($scope) { $scope.names = ["Google", "Runoob", "Taobao"]; }); </script> <p>該實例演示了使用 ng-repeat 指令來建立下拉列表。