1. 程式人生 > >AngularJS radio單選按鈕

AngularJS radio單選按鈕

今天在看angularJS的API時,看到一個例項。

在頁面上有幾個專案名稱,每個名稱前面都有一個checkbox,如果打上勾,則表示這個專案已經完成,如果沒有打鉤,則表示未完成。

然後在下方設定一個輸入框,用來輸入新增加專案的名稱,再下邊是兩個radio按鈕,只能選擇一個,用來選擇新增肌的專案的完成情況。最後是一個提交按鈕,表示新增一個新的專案。

這裡寫圖片描述
這是截圖。

下面來看看angularJS的程式碼。

<!DOCTYPE html>
<html ng-app="todolist">
<head lang="en">
    <meta charset
="UTF-8">
<title></title> <script src="lib/angular.js"></script> </head> <body> <div ng-controller="TodolistController"> <ul> <!--迴圈遍歷作用域下的items,即($scope.items),並重復克隆這個HTML元素li--> <li ng-repeat="item in items"> <!--當checkbox繫結的值為true時,頁面中會打上對勾-->
<input type="checkbox" ng-model="item.finished"><span ng-bind="item.name"></span> </li> </ul> <hr> <!--繫結作用域物件的一個數據模型name,這個那麼變數隨時獲取輸入框輸入的內容--> Name:<input type="text" ng-model="name"> <p></p> <label
>
<!-- 有兩個radio標籤,必須有相同的name才能實現二選一的效果 通過ng-value裡不同的值,實現選擇不同radio有不同值。然後兩個radio又繫結著相同的資料模型,這樣就可以實現當選擇不同的radio時,繫結的資料模型變數會有不同的值。 --> <input type="radio" ng-value=true ng-model="state" name="selectState">finished </label> <label> <input type="radio" ng-value=false ng-model="state" name="selectState">unfinished </label> <!--這裡是把這個資料模型顯示出來,為了測試其值是否正確。可以省略掉--> <p>
{{state}}</p> <!--當點選按後,執行一個函式--> <button type="button" ng-click="addItem()">Add a new item</button> </div> <script> //先預定義幾個專案的名稱和完成的狀態。 var items = [ {name: 'Javascipt', finished: true}, {name: 'AngularJS', finished: true}, {name: 'NodeJS', finished: false}, {name: 'MongoDB', finished: false} ]; //註冊一個模組 var todolistModule = angular.module('todolist', []); //註冊一個控制器 todolistModule.controller('TodolistController', ['$scope', function ($scope) { //把外圍的是物件陣列的引用傳遞給模組作用域的資料模型items中 $scope.items = items; //把輸入框的內容初始化為空 $scope.name = ''; //給作用域新增函式方法 $scope.addItem = function () { //因為將來要插入的都是物件,所以先定義一個空的物件 var newItem = {}; //分別把DOM中繫結的值賦給這個新定義物件的兩個屬性 newItem.name = $scope.name; newItem.finished = $scope.state; //在陣列的末尾追加物件元素 items.push(newItem); }; }]); </script> </body> </html>

這裡寫圖片描述