1. 程式人生 > >AngularJs——雙向資料繫結示例

AngularJs——雙向資料繫結示例

       最近在做Hybird App,接觸到了AngularJs,感覺用起來蠻爽的,今天share下AngularJs的核心功能之一:雙向資料繫結。

       我們在頁面中加入一個表單:

<!DOCTYPE html>
<html ng-app="userInfoModule">
<head>
<meta name="content-type" content="text/html; charset=UTF-8">
<script src="angular-1.5.0/angular.min.js"></script>
<script src="js/Forms.js"></script>
<link href="http://libs.baidu.com/bootstrap/3.0.3/css/bootstrap.min.css" rel="stylesheet">
<script>

</script>
</head>

<body>
 <div class="panel panel-primary">
   <div class="panel-heading">
     <div class="panel-title">
       Two-way Binding demo
     </div>
   </div>
   <div class="panle-body">
       <div class="row">
         <div class="col-md-12">
           <form  class="form-horizontal" role="form" ng-controller="userInfoControl">
             <div class="form-group">
               <label class="col-md-2 control-label">
                 email-address:
               </label>
               <div class="col-md-10">
                 <input type="email" class="form-control" placeholder="please input you email-address" ng-model="userInfo.email">
               </div>
             </div>
             <div class="from-group">
               <label  class="col-md-2 control-label">
                 password:
               </label>
               <div class="col-md-10">
                 <input type="password" class="form-control" placeholder="please input your password" ng-model="userInfo.password">
               </div>
             </div>
             <div class="form-group">
               <div class="col-md-offset-2 col-md-10">
                 <div class="checkbox">
                   <label >
                     <input type="checkbox" ng-model="userInfo.autoLogin">login auto
                   </label>
                 </div>
               </div>
             </div>
             <div class="form-group">
               <div class="col-md-offset-2 col-md-10">
                 <button class="btn btn-default" ng-click="getFormData()">
                   get form data
                 </button>
                 <button class="btn btn-default" ng-click="setFormData()">
                   set form data
                 </button>
                  <button class="btn btn-default" ng-click="resetFormData()">
                   reset form data
                 </button>
               </div>
             </div>
           </form>
         </div>
       </div>
   </div>
</div>
</body>
</html>

     之後,定義模組跟controller,並在controller中繫結我們的model跟事件。

var userInfoModule=angular.module('userInfoModule',[]); /*定義模組*/
userInfoModule.controller('userInfoControl',['$scope',function($scope){/*定義Controller,並注入物件*/
	$scope.userInfo={ /*初始化資料*/
		email:"[email protected]",
		password:"1112345",
		autoLogin:true
	};
	$scope.getFormData=function(){ /*獲取模型資料*/
		console.log($scope.userInfo);
	};
	$scope.setFormData=function(){/*設定資料*/
		$scope.userInfo={
			email:"
[email protected]
", password:"000000000000", autoLogin:true }; }; $scope.resetFormData=function(){/*重置資料*/ $scope.userInfo={ email:"[email protected]", password:"1112345", autoLogin:true }; }; }]);

   程式碼解析:

       用完之後,最大的感覺就是,DOM操作少了,資料雙向繫結後,頁面上表單改變值,也不用再重新取值,非常方便。