javascript - 模块化 Angular 模板

标签 javascript angularjs angularjs-directive angularjs-scope

我的模板文件变得越来越大并且过于复杂(大约 200 行(长)代码,9 级缩进),因此它也变得容易出错。我正在寻找一个简单的解决方案,它可以让我轻松访问 $scope 变量和函数。

我的第一个想法是使用 ngInclude,但正如我所见,如果我想访问变量,它会变得很麻烦。

另一个想法是使用指令,但这似乎也不是一种可行的方法,因为我不想为每个模板添加单独的指令。

我的最后一个想法是编写一个通用指令,它使用其父级 $scope 并可以访问它的函数。这被认为是一个好的做法吗?嵌入可能存在哪些陷阱/缺点?

最佳答案

将你的 Angular 编写为小代码模块

这些模块可能应该是特定于页面的。看看我整理的这个简单模板,以保持所有 Angular 代码的可读性和功能性。 here是 github 存储库的链接。

文件结构

在应用程序中,您有 2 个核心模块,其中一个将所有模块组合在一起“module.js”

还有一个控制你的路线的“routes.js”

还有一个组件部分,其中包含每个页面分隔关注点的单独模块。我们有一个用于模块本身和 Controller 的文件,以及一个用于工厂和服务的单独文件。

通过像这样构建您的应用程序,您可以构建小插件组件并阻止它们变得巨大且难以阅读的困惑。

补充阅读

我关注this Angular 应用程序结构指南,文章中提出的观点非常好,并且始终保持我的代码干净。

关于javascript - 模块化 Angular 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34674994/

相关文章:

angularjs - 指令 Controller 中的访问需要 Controller

javascript - Angular 指令 - Attr 中的嵌套对象

javascript - 如何使 Canvas 响应

javascript - 如何消除angularjs中某些单元格的悬停效果

javascript - Stripe形式不会创建任何信用卡

javascript - 正则表达式按字面意思匹配单词和\n

angularjs - schemaform 将用户输入添加到模式数组

angularjs - Angular $http 不发送数据

javascript - 在添加对象之前如何检查对象是否已存在于数组中?

javascript - 如何与父范围共享子指令的数据?