AngularJs 功能(三)--数据绑定丶作用域
功能数据绑定AngularJS的双向数据绑定,一方面可以做到model变化驱动了DOM中元素变化,另一方面也可以做到DOM元素的变化也会影响到Model。 在我们使用jQuery的时候,代码中会大量充斥类似这样的语句: / 获得TEXT.AREATEXT的值/ 即频繁的DOM操作(读取和写入),其实我们的最终目的并不是要操作DOM,而是要实现业务逻辑。angular的数据绑定将让你摆脱DOM操作,只要模板与数据通过声明进行了绑定,两者将随时保持同步,最新的数据会实时显示在页面中,页面中用户修改的数据也会实时被记录在数据模型中。 实例从View到Controller再到View的数据交互: <html ng-app="demoApp"> …… <input type="text" ng-model="user.name" placeholder="请输入名称"/> Hello,{{ user.name }}! …… 关键: ng-app 、 ng-model 和 { {user.name } } 从Server到Controller再到View的数据交互: <html ng-app="demoApp"> …… <div ng-controller="demoController"> <input type="text" ng-model="user.name" disabled="disabled"/> <a href="javascript:void(0);" target="_blank" rel="nofollow">获取名字 </a> …… demoApp.controller("demoController",function($http,$scope){ $scope. getAjaxUser = function(){ $http.get({url:"../xxx.action"}).success(function(data){ $scope.user= data; }); $scope.user = {"name":"从JOSN中获取的名称","age":22}; }; }); 改变$scope中的user,View也会自动更新。 作用域scope1>$scope $scope是一个将view(一个DOM元素)连结到controller上的对象。每一个Angular应用都会有一个 $rootScope。这个 $rootScope 是最顶级的scope,它对应着含有 ng-app 指令属性的那个DOM元素。 $scope也是一个JavaScript对象,指向应用程序作用域内的所有HTML元素和执行上下文。 所有$scope都遵循原型继承,这意味着它们都能访问父$scope,也具有原型链那样的特性,即向上访问属性和方法,直到最顶层。 在ng-repeat、ng-switch、ng-view、ng-include都会创建一个新的子scope,所以问题经常在这些指令中出现。 在你的model中,带有「.」将会确认原型继承在起作用。所以使用 <input type="text" ng-model="someObj.prop1"> 比 <input type="text" ng-model="prop1"> 更好。 如果你真的想要(或需要)使用一个原始的方式,有两项工作: 在子scope中,使用$parent.parentScopeProperty。这将阻止子scope创建它自己的属性。 在父scope上创建一个方法,并且从子scope中调用它,传递原始值到父scope中(并不总是起作用)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |