阅读更多

2顶
1踩

Web前端
Angular.js是Google开发者设计和开发的一套前端开发框架,帮助你简化前端开发的负担(在线演示)。



当然,互联网上有很多其它的前端开发框架,但是如何选择合适的前端框架对于我们这些开发人员来说就不是那么容易了!在今天的这篇文章中,我们将介绍三个你应该使用Angular.js的重要原因,希望对大家有所帮助!

原因一:Google开发的框架

要知道开源界的很多框架都是开发人员由于个人兴趣或者激情而开发出来的,比如,Cappucino 还有 Knockout。而angularJS是由互联网巨人Google组织开发的。这意味这你有更加强大的社区支持。谁都不希望第一天开始使用一个框架,第二天发现这个框架已经被遗弃了吧!

其实这不是Google第一次尝试开发JavaScript的前端框架,大家可能还记得Web Toolkit,用来帮助你将java代码转化为javasscript代码。过去google的wave推广用它来开发项目。随着HTML5,CSS3和javascript的发展,Google发现web应用并非意味着只使用纯Java来实现。

AngularJS将帮助标准化的开发web应用结构并且提供了针对客户端应用的未来开发使用的模板。versin 1.0 发布在6个月前,已经被很多的应用实践过了,包括商业应用及其产品。

AngularJS作为可选的架构必将成为整个开发社区的明星。因为AngualrJS是google开发的产品,所以注定了你将有一个坚实的基础,相信它能够成为你的最佳选择!

原因二:AngularJS非常全面

类似 Backbone 或者 JavaScriptMVC,anguar是一个快速的前端开发解决方案。没有其它的插件或者架构足以开发数据驱动的web应用。下面列出了AnguarJS的一些特性:

  • 方便的REST: RESTful逐渐成为了标准的服务器和客户端沟通的方式。使用一行javascript代码,你就可以快速的从服务器端得到数据。AugularJS将 这些变成了JS对象,作为Model,遵循MVVM(model view view-model)设计模式。
  • MVVM救星:Model将和ViewModel互动(通过$scope对象),将监听Model的变化。这些可以通过View来发送和渲染,由HTML来展示你的 代码。View可以通过$routeProvider对象来支配,所以你可以深度的链接和组织你的View和Controller,将他们变成导航 URL。AngualrJS同时提供了无状态的Controller,可以用来初始化和控制$scope对象。
  • 数据绑定和依赖注入:在 MVVM设计模式中的任何东西无论发生任何事情都自动的和UI通信。这帮助我们去除了wrapper,getter/setter方法或者class定 义。AngularJS将帮助我们处理所有的这些内容,所以你可以处理数据像处理基本javascript数据类型,例如,数组一样简单。当然你也可以通 过自定义处理复杂数据。正因为所有事情的发生都是自动的,所以你不必调用一个main()来执行你的代码,而是通过依赖关系来驱动。
  • 可扩展的HTML:大多数的网站都是使用非语义的<div>标签来搭建的。你需要自己在CSS的class中定义相关的DOM层次结构。而使用 AngularJS,你可以操作XML一样操作HTML,给你无穷的方式来完成标签和属性定义。AngularJS通过自己的编译器和directives来完成相关的设置。
  • 使用HTML模板:如果你曾经使用过MustacheHogan.js, 或者handlerbars的 话,你就可以快速的理解AngularJS的模板引擎语法,应为它是纯HTML的。AngularJS通过DOM浏览来完成 此类功能,使用上面提到的directives。模板被作为DOM元素传递到Angular的编译器中,可以被扩展,执行或者重用。这很关键,这样一来你 就拥有了DOM组件,而非字符串,允许你直接的操作扩展DOM树。
  • 企业级别的测试:AnguarJS并不依赖于第三方的插件或者是框架,包括测试。如果你熟悉QUnitMocha 或者 Jasmine的话,那么对于理解Angular的单元测试和Scenario Runner来说就非常简单。
以上的这些基本的原则能够帮助知道你使用Angular来创建高效性能可维护的代码。只要你有代码保存数据,AnguarJS会帮助你处理所有的重量级内容,提供一个富客户端的超棒体验!

原因三:花几分钟就可以开始开发

学习Angular非常简单。添加几个属性到你的HTML中,你可以使用5分钟搭建一个应用!
添加ng-app directive到<html>标签,这样Angular知道应该运行:
<html lang="en" ng-app>

添加Angular<script>标签到<head>标签里:
<head>
 ...meta and stylesheet tags...  
<script src="lib/angular/angular.js"></script>

添加正常的HTML标签。AngularJS directive可以在HTML属性中被访问,而表单式将使用两个大括号来标示:
<body ng-controller="ActivitiesListCtrl">
   <h1>Today's activities</h1>
   <ul>
    <li ng-repeat="activity in activities">
      {{activity.name}}
    </li>
   </ul>
</body> 

ng-controller directive设置了一个名字空间,这里我们可以添加angular的相关javascript来处理数据和表达式。ng-repeat是一个angular的重复对象,可以用来创建一系列的对象元素。

当你想从Anguar中获取数据,你使用一个对应名字的controller方法,如下:
function ActivitiesListCtrl($scope) {
  $scope.activities = [
    { "name": "Wake up" },
    { "name": "Brush teeth" },
    { "name": "Shower" },
    { "name": "Have breakfast" },
    { "name": "Go to work" },
    { "name": "Write a Nettuts article" },
    { "name": "Go to the gym" },
    { "name": "Meet friends" },
    { "name": "Go to bed" }
  ];
 }

这里我们创建了一个方法,名字和前面的ng-controller directive一样,这样我们页面可以找到对应的Angular方法来执行。我们传递了$(scope)对象来访问模板中的activities列 表。提供了activities对应的name,我们在页面中使用"{{expression}}"表达式展现出来。
或者你保存数据在服务器上,我们同样可以使用AJAX获取数据:
function ActivitiesListCtrl($scope) {
  $http.get('activities/list.json').success(function (data) {
    $scope.activities = data;
  }
}

这里我们简单的使用指定的HTTP GET方法替换了本地的javascript数据。传递了文件名字来获取相关数据。这和jQuery的方式非常类似。

以上我们使用success方法确保数据返回,并且将数据绑定到了$scope上。

静态的列表显示的很好,但是这里我们希望能够根据用户选择自动排序。这里我们添加一个简单的下拉菜单:
<h3>Sort:</h3>
<select>
   <option value="name">Alphabetically</option>
</select>

添加directive:
<select ng-model="sortModel">

最后,我们修改<li>标签来识别sortModel:
<li ng-repeat="activity in activities | orderBy: sortModel">

搞定!关键是添加在ng-repeat里的过滤器。orderBy过滤器帮助我们通过选择的内容来过滤内容。

注意我们代码中没有监听用户的互动事件。没有使用callback或者事件处理。所有的这些都被Angular内部处理了。

当然AngularJS提供了我们一个完整的教程,帮助你创建一个web应用,如果大家有兴趣可以看看!

总结

AngularJS快速的成为了JavaScript的主流框架,帮助你专业的从事web开发。如果你寻找或者评估一个成熟的JS前端框架的话,AngularJS应用成为你的评估对象之一。

Via gbtags
来自: www.gbin1.com
2
1
评论 共 9 条 请登录后发表评论
9 楼 walkintojava 2014-03-24 16:40
这样会不会污染了HTML结构,虽然只添加一个属性就可以完成相应的工作。但是如果没有AuglarJS的相关知识储备,会不会导致代码不可读不可理解?

如果能有更多关于其负面的介绍就更好了,可以避免走弯路。
8 楼 houfeng0923 2013-02-20 13:39
key232323 写道
bcw104 写道
入门容易精通难,缺少专业化的UI库的整合


赞同

7 楼 key232323 2013-02-07 13:48
bcw104 写道
入门容易精通难,缺少专业化的UI库的整合


赞同
6 楼 dohkoos 2013-01-28 10:55
Google开发的框架就是强有力的保证么?不要忘了GWT,还有google关闭了的好多项目。
5 楼 bcw104 2013-01-23 10:39
入门容易精通难,缺少专业化的UI库的整合
4 楼 guozhen_168 2013-01-22 21:03
去试试看,不知道和extjs比,怎么样~!
3 楼 firelife 2013-01-22 09:16
悲慛啊,github无法访问。
2 楼 asialee 2013-01-21 23:20
真的感觉不错呀
1 楼 Will_Turner 2013-01-21 22:29
项目中正在使用。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • SQl语句生成数据字典

    数据字典生成工具直接从数据库中读取标兵生成word\excel\html 等文档

  • SQL生成数据字典语句

    声明:非原创,但忘记出处,代码贴在这里,仅供参考! SELECT [表名] = c.name, [表说明] = Isnull(f.[value],''), [列名] = a.name, [列序号] = a.column_id, [标识] = CASE WHEN is_identity

  • 利用sql脚本把数据字典导出

    前段时间在机房合作中,需要导出数据字典,可是数据量好大呀,不想自己手写咋办。后期修改了很多怎办。现在办法来了,使用sql脚本,在数据库生成后,直接导出来即可。        SQL Server 2008数据库,生成数据字典比较麻烦,不过看看就会了。   use YourDatabase --指定要生成数据字典的数据库 goSELECT 表名=case when a.colorder=1

  • MYSQL

    数据库表说明: 用户权限表 select * from mysql.user 获取表名和注释映射 [x] TABLES:存储数据库中的表信息 表属于哪个数据库,表的类型、存储引擎、创建时间等信息 select * from information_schema.tables...

  • 使用Navicat快速生成数据库字典

    多互联网创业型公司前期都不太规范,新人来了,没有太多的设计文档、需求文档,也没有ER图、数据字典这些东西。所以,熟悉业务需要不少时间,很多简单的问题(如数据表中状态值的含义)不得不问老员工,因为没有注释也没有数据字典。利用navicat可以快速生成数据字典。

  • 通过sql语句生成MySQl数据字典

    通过一天的学习,下载了好多的数据字典生成工具都用不成,最后只得通过sql语句来实现了,现在分享出来,希望大家多多指点。 通过下面sql语句生成的数据字典包含主键、外键、索引。 select distinct a.TABLE_SCHEMA as '数据库' , a.TABLE_NAME as '表名', a.COLUMN_NAME as '字段名', a.COLUMN_TYPE as '类

  • SQL语句生成数据字典

    通过系统表记录信息自动生成html。 页面效果如下: SQL代码 1 BEGIN 2 DECLARE @TableName nvarchar(35),@tempHtml nvarchar(max),@htmls NVARCHAR(max)='' 3 DECLARE @字段名称 NVARCHAR(200) 4 DECLARE @类型 NV...

  • 用Sql语句生成Sqlserver数据字典^_^

    SELECT  表名=case when a.colorder=1 then d.name else end,  --字段序号=a.colorder,  字段名=a.name,  --标识=case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else end,  /*主键=case when exists(SELE

  • 建立sql数据字典的

    select      [表名]=c.Name,     [表说明]=isnull(f.[value],''),     [列名]=a.Name,     [列序号]=a.Column_id,     [标识]=case when is_identity=1 then '√' else '' end,     [主键]=case when exists(sele

  • 数据库字典 sql

    SELECT 表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=a....

  • (转)列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息的SQL语句

    SELECT        (case when a.colorder=1 then d.name else end)表名,       a.colorder 字段序号,       a.name 字段名,       (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else end) 标识,       (

  • [SQL Server] 导出表结构(数据字典)

    -- 数据字典SELECT        (case when a.colorder=1 then d.name else end)表名,        a.colorder 字段序号,        a.name 字段名,        (case when COLUMNPROPERTY( a.id,a.name,IsIdentity)=1 then √else

  • Oracle自动生成数据字典的SQL语句

    读取Oracle表字段名字,类型(含长度),注释等信息的SQL语句:select col.COLUMN_NAME, com.Comments, col.DATA_TYPE, col.DATA_LENGTHfrom sys.all_tab_columns col,     sys.all_col_comments comwhere col.owner = 用户名and col.table_n

  • 通过数据库生成数据字典 Navicat生成excel数据字典

    通过 navicat 导出数据字典 select column_name '字段名', column_type '数据类型', column_comment '备注' from information_schema.columns where table_schema = 'erp_wms_pro' and table_name ='wms_bs' table_schema 选择的数据库 table_name 该数据库下的表 然后直接复制到excel表中 ...

  • 查出表的各个字段的所有属性

    SELECT     表名       = case when a.colorder=1 then d.name else end,    表说明     = case when a.colorder=1 then isnull(f.value,) else end,    字段序号   = a.colorder,    字段名     = a.name,    标识      

  • sql server 如何生成字典表

    需求 我们在项目验收时一般会需要很多的文件,其中有一项就是 数据库的数据字典文档,平常的数据字典字典文档一般都是word或者excel文档,这里我们重点使用sql脚本文成生成html代码的形式生成数据字典,体现稍微的高级感。 工具 使用的工具为Microsoft SQL Server Management Studio 如果使用navicate可能会有乱码现象。 实现方式 方法一.通过sql脚本生成,html代码生成 第一步:在sql server中运行一下脚本 -- ==================

  • 数据库生成数据字典的方法

    数据词典的生成方法有很多种 今天要介绍的是利用sql命令,快速的生成数据词典,从而方便查看: SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, COLUMN_COMMENT FROM information_schema.c...

  • SQl 中几种常用的数据字典SQL

    查询表table_Name中的所有列select * from user_tab_columns where table_name = ‘xxx ‘ 查询所有表名select table_name from user_tables

  • PowerDesigner根据数据库生成数据字典

    根据数据库,生成数据字典

Global site tag (gtag.js) - Google Analytics