《中级前端5.2》AngularJS 进阶——bind,{{}},Controller,$scope 变量 方法,ng-show
核心内容:1.MVC 框架的搭建; 2.ng-bind 指令的使用; 3.controller 控制器的使用; 4.在 $scope 中定义方法和变量
AngularJS 前端 MVC 的设计与搭建
最基本的一个MVC搭建:

Binding 指令实现双向数据绑定
本课时使用 ng-bind 或{{}} 指令进行双向绑定数据。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Bind和{{...}}</title> 6 <link rel="stylesheet" href="css/foundation.min.css"> 7 </head> 8 <body style="padding:10px;" ng-app="app"> 9 <div ng-controller="MyCtrl"> 10 <input type="text" ng-model="uname"> 11 <h1>{{uname}}</h1> 12 <div>{{'用户名: ' + uname}}</div> 13 <div ng-bind="'用户名' + uname"></div> 14 <div class="{{uname}}">{{uname}}</div> 15 </div> 16 </body> 17 <script type="text/javascript" src="js/angular.min.js"></script> 18 <script type="text/javascript" src="js/myctrl.js"></script> 19 </html>

Controllers 的使用
本课时讲解在 MVC 框架中如何使用 controller 以及 controller 的作用域。
index.html:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>AngularJS 进阶</title> 6 <link rel="stylesheet" href="css/foundation.min.css"> 7 </head> 8 <body style="padding:10px;" ng-app="app"> 9 <div ng-controller="FirstCtrl"> 10 <input type="text" ng-model="msg"> 11 <h1 ng-bind="msg"></h1> 12 </div> 13 <div ng-controller="SecondCtrl"> 14 <input type="text" ng-model="msg"> 15 <h1 ng-bind="msg"></h1> 16 </div> 17 </body> 18 <script type="text/javascript" src="js/angular.min.js"></script> 19 <script type="text/javascript" src="js/myctrl.js"></script> 20 </html>
myctrl.js:
1 angular.module('app', []) 2 .controller('FirstCtrl', function($scope) { 3 $scope.msg = "Hello Angular"; 4 }) 5 6 .controller('SecondCtrl', function($scope) { 7 $scope.msg = "Hello Second"; 8 })

Controller的作用域在他标识的div内部。
在 $scope 中变量和方法的使用
本课时讲解 $scope 的使用以及如何在 $scope 上声明变量和方法。
index.html:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>AngularJS 进阶</title> 6 <link rel="stylesheet" href="css/foundation.min.css"> 7 </head> 8 <body style="padding:10px;" ng-app="app"> 9 <div ng-controller="MyCtrl"> 10 <input type="text" ng-model="user.uname"> 11 <input type="text" ng-model="user.pwd"> 12 <!-- <h1>{{reverse()}}</h1> --> 13 <div class="button" ng-click="login()">登录</div> 14 <div ng-show="errormsg.length>0" class="alert-box">{{errormsg}}</div> 15 </div> 16 </body> 17 <script type="text/javascript" src="js/angular.min.js"></script> 18 <script type="text/javascript" src="js/myctrl.js"></script> 19 </html>
myctrl.js:
1 angular.module('app', []) 2 .controller('MyCtrl', function($scope){ 3 $scope.msg = ""; 4 $scope.user = {uname:'', pwd:''}; 5 $scope.errormsg = ""; 6 $scope.reverse = function(){ 7 return $scope.msg.split("").reverse().join(""); 8 } 9 $scope.login = function(){ 10 if($scope.user.uname=="admin" && $scope.user.pwd=="123"){ 11 alert("登陆成功"); 12 }else{ 13 $scope.errormsg = "用户名或密码错误"; 14 } 15 } 16 })



浙公网安备 33010602011771号