我正在观看一个免费的互动课程,发表于
angularjs.org,学习Angular,Shaping up with Angular js.
在这个课程的第一章他们说,使用AngularJS的主要原因之一是,它可以构建“响应”的网络应用程序. (我知道“响应设计”,但这完全是一个不同的事情),并解释说,使用Angular,您不需要刷新您的网页来更新它从Web服务器的数据(他们告诉你这个,就像这是全新的技术!).
我认为在过去十年中,使用Ajax并不是一回事吗?或者这是完全不同的?
请帮我理解这个coz我是AngularJS的新手.
从我的看法“响应”的网络应用程序.意味着更新View对模型更改(MVC)的应用程序类型.
原文链接:https://www.f2er.com/angularjs/143112.htmlAngular应用UI充满了观察者.对于HTML中由{{}}包装的每个变量,Angular创建新的观察者,并且当我们在代码运行此值时更新Angular,分别使用摘要循环更新视图.或ng-repeat指令,每个列表项创建单独的范围,并添加观察器.
另一方面,在纯JavaScript中,我需要通过id查找我的元素,并手动更新它.
在Fiddle中考虑下面的例子
HTML
<ul> <li ng-click="loadGeo()">click 1</li> </ul> <ul> <pre> data: {{data|json}} </pre> </ul>
JS
var app = angular.module('myModule',['ngResource']); app.controller('fessCntrl',function ($scope,Data) { $scope.data = false; $scope.loadGeo = function () { Data.query() .then(function (result) { $scope.data = result.data.results[0]; },function (result) { alert("Error: No data returned"); }); } }); app.factory('Data',['$http','$q',function ($http,$q) { var address = 'Singapore,SG,Singapore,153 Bukit Batok Street 1'; var URL = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + address + '&sensor=true'; var factory = { query: function () { var data = $http({ method: 'GET',url: URL }); var deferred = $q.defer(); deferred.resolve(data); return deferred.promise; } } return factory; }]);
一开始我们有空数据:$scope.data = false;
我们点击按钮,我们从工厂获取Geo数据,并使用Geo输出填充数据.我们的GUI更新没有任何其他代码.
这个方法我会称之为“响应”的网络应用程序
我建议你阅读Josh David Miller写的这篇伟大的帖子: