2015-10-14 71 views
0

我有一个Web应用程序。它有一个非常传统的技术堆栈。服务器端是Apache Struts,数据库是db2,在客户端我使用的是JQuery。该应用程序通过websphere部署。仅在客户端使用Angular with JQuery

最近我已经开始在很多页面上大量使用JQuery,并且我已经慢慢地开始看到某些页面后面的JQuery代码变成了意大利面条代码。

我正在寻找在客户端添加Angular.js和handlebars.js给我的JQuery更多的结构。

首先我想问一下,如果这是一个很好的用于Angular.js和如果我用jQuery的Angular和handlebars每个人会用什么目的。

谢谢

回答

4

我做了很多使用jQuery的DOM操作。 切换到角度已经大大地清理了我的代码。这里有浮现在脑海中的几件事情:

做琐碎的东西,就在HTML

一个简单的事实,你可以做很多琐碎的事情就在HTML摆脱很多JS的码。下面的jQuery代码要求我观察复选框的更改,而不是根据选中的状态,我必须显示或隐藏下面的范围。使用angularjs,不需要一行自定义js。

<input type="checkbox" ng-model="show"/> 
<span ng-show="show">show me when checkbox is checked</span 

没有更多的在你的js代码

每个HTML现在比你会发现自己循环槽的阵列,在你的js添加表行或立的,而不是推EM到DOM。您基本上在您的JS文件中编写HTML。使用ng-repeat可以保持在HTML模板文件和环槽的阵列,就在你想建立一个表/表/等

<li ng-repeat="user in users">{{ user.name }}</li> 

功能是在你的HTML更清晰

因为jQuery在javascript代码中使用选择器,我经常发现自己正在搜索按钮的实际功能。使用角度可以使用ng-click来调用一个函数。这使得看到HTML时实际发生的事情变得更加清晰。

<button ng-click="recalculateUsage()">recalculate</button> 

没有更多的占位符

另一大好处是,显示你的模板数据可以作为{{ user.name }}一样简单,而不是创建一个占位符,你比填充使用jQuery。 $('#userName').html('my new content')

指令

指令是清理你的代码的另一个好方法。很多使用过的元素可以存在于自己的js/template文件中,并且可以以简单的方式插入到HTML中。

+0

好处的更多细节,同时也为您提供了JSON更容易获得/ API等... – Schuere

+0

此外,它本质上是通过采用模块化设计,提供服务,控制器,工厂,过滤器,指令,拦截器,提供者。大多数服务,甚至核心都很容易扩展。这使得测试你的角度应用程序变得轻而易举。然后是非常强大的承诺系统。由于它,你可以有自动重新登录,自动记录,自动错误处理和授权拦截器。而提及除数据绑定之外的其他内容+1。不过,我会补充说,jQuery可以发挥很好的角度,但应该在任何DOM操作的指令内使用。 – ste2425

1

AngularJS和JQuery都有不同的用途,因为它们都有不同的目标。

JQuery在DOM操作中受益匪浅,不需要太多关心数据。而AngularJS另一方面为您提供MVC框架,用于分离模型,视图,控制器逻辑并提供双向数据绑定。

见本约的角度What does AngularJS do better than jQuery?