我可以在Angular应用程序中包含常规JS(非jQuery)吗?

时间:2016-03-07 10:03:41

标签: javascript angularjs

我是角色的新手,我知道新手在编写角度应用程序时忘记jQuery是个好主意,因为简而言之,你可以设计一个jQuery应用程序,然后让它变得动态但是角度你从字面上构建它,因此,可能会发生冲突。

我有几个问题:

  1. 这是'规则'还申请常规JS脚本?例如:对于rss feed,我可以使用jquery-rss.js在视图中包含rss功能,还是需要在角度上下文中重写并在控制器中使用它?或者再举一个例子:如果我使用的是bootstrap.min.css,我可以使用bootstrap.min.js吗?

  2. 如果是这样,那怎么会重写' JS脚本进入角度友好的上下文?

  3. 使用服务器端语言时有任何限制或限制吗?

3 个答案:

答案 0 :(得分:8)

  

这个'规则'是否也适用于常规JS脚本?

是的,操纵DOM的任何事情都有可能踩到Angular的脚趾,并且更难实施/维护。

  

使用服务器端语言时是否有任何限制或限制?

没有。客户端不知道是什么生成从服务器获取的数据。

答案 1 :(得分:5)

对于Bootstrap的特定情况,推荐的方法是使用UI Bootstrap(由Angular UI团队制作),它将大多数Twitter Bootstrap交互组件“摇摆”为Angular指令。

你仍然使用Bootstrap的CSS,但交互式部分是用Angular制作的。

答案 2 :(得分:3)

通常的好习惯是使用一些角度绑定来包装现有的常规JS模块/脚本。通常,它是通过创建角度服务或工厂或组件/指令(如果是Dan Pantry正确记录的脚本修改DOM的情况下)来完成的,它们负责向角度模块注入非角度功能。但是,在组件中包含更复杂的DOM修改模块可能要求更高,因为它可能需要实现处理DOM修改的所有角度方式。

您可以在网上找到示例。即这是similar question answered。这是一些step by step,这是关于使用third party libraries with angular的另一个有趣的阅读。

对于特定的无角度js模块,我会寻找任何现有的角度化版本,或者任何具有角度API的类似库。

服务器端语言没有任何限制。