AngularJs——雙向資料繫結示例
阿新 • • 發佈:2019-02-03
最近在做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操作少了,資料雙向繫結後,頁面上表單改變值,也不用再重新取值,非常方便。