angularjs应用程序的基本行为和结构
我想把自己介绍给angularjs 尽管我已经完成了教程的学习并观看了基本的建筑视频,但我仍然在为或多或少的大规模应用程序的行为和架构而挣扎 我的应用程序有一个包含添加按钮的菜单栏。如果用户单击按钮,我希望弹出一个对话框。该对话框不是菜单的一部分:angularjs应用程序的基本行为和结构,angularjs,architecture,frameworks,Angularjs,Architecture,Frameworks,我想把自己介绍给angularjs 尽管我已经完成了教程的学习并观看了基本的建筑视频,但我仍然在为或多或少的大规模应用程序的行为和架构而挣扎 我的应用程序有一个包含添加按钮的菜单栏。如果用户单击按钮,我希望弹出一个对话框。该对话框不是菜单的一部分: <!-- The menu --> <header class="mod modHeader" ng-controller="HeaderCtrl"> <div class="modHeader__addProjec
<!-- The menu -->
<header class="mod modHeader" ng-controller="HeaderCtrl">
<div class="modHeader__addProject" ng-click="openAddDialog()">
<i class="icon-plus icon-2x"></i>
</div>
</header>
<!-- the dialog -->
<div class="modNewProject" ng-show="properties.AddDialogVisibility" ng-controller="HeaderCtrl">
<!-- content stripped out -->
</div>
现在,有多个问题:
- 我必须将HeaderCtrl应用到对话框中才能访问properties对象。这对我来说很讨厌,HeaderCtrl应该只控制我的header模块,不是吗
- 单击时不会显示该对话框。我发现这是因为该属性在页面加载时只检查一次,并且我必须使用函数。实现我的目标的正确方法是什么
我为页面的每个部分使用一个控制器。它们是如何通信的?在您提供的示例代码中,将创建两个HeaderCtrl。每次使用
ng controller
都将创建一个控制器
要以角度共享数据,请使用。在需要时将该服务注入控制器、指令等
在设计Angular应用程序时,试着从模型(通常包含在服务中,然后是应用程序的其余部分)和视图的角度来考虑。控制器只是一种粘合剂,它允许我们将模型的相关部分投影到视图中
对话框是一种特殊/独特的情况,因为。听一听关于这个话题的。
我还建议查看Angular UI团队如何实现对话框:在您提供的示例代码中,将创建两个HeaderCtrl。每次使用
ng controller
都将创建一个控制器
要以角度共享数据,请使用。在需要时将该服务注入控制器、指令等
在设计Angular应用程序时,试着从模型(通常包含在服务中,然后是应用程序的其余部分)和视图的角度来考虑。控制器只是一种粘合剂,它允许我们将模型的相关部分投影到视图中
对话框是一种特殊/独特的情况,因为。听一听关于这个话题的。
我还建议看看Angular UI团队是如何实现对话框的:Angular structure
app->
assets->
css -> all css file
js -> all js file
partials-> all html files
vender -> third party file (like angular.js , jquery.js)
router.js
services.js
filter.js
directives.js
controllers.js
index.html
角结构
app->
assets->
css -> all css file
js -> all js file
partials-> all html files
vender -> third party file (like angular.js , jquery.js)
router.js
services.js
filter.js
directives.js
controllers.js
index.html
没有AngularJS标记,因为这是programmers.SE,而不是StackOverflow。我已将此问题标记为迁移到该社区。此外,您的问题是使用同一控制器的两个实例,这意味着它们有两个不同的作用域。他们不交流。我建议使用一个ng控制器来包装标题和对话框。没有AngularJS标记,因为这是programmers.SE,不是StackOverflow。我已将此问题标记为迁移到该社区。此外,您的问题是使用同一控制器的两个实例,这意味着它们有两个不同的作用域。他们不交流。我建议使用一个ng控制器来包装您的标题和对话框。我查找了服务内容,发现有服务、工厂和提供者。我知道它们在功能上各不相同,而且服务可能是最容易使用的。“但我如何决定选择哪一个呢?”斯普洛特恩威尔斯,再见,再次感谢你,但我可以问最后一个问题吗?您将如何扩展该服务?一个大的$objects服务于整个数据应用程序,足够简单吗?@Sprottenwels,我不确定我是否理解你的问题。您需要扩展什么?服务/工厂/提供者可以在任何需要的地方注入(例如,注入多个控制器、其他服务、多个指令等)。服务/工厂/提供者是单例的。你的单例可以包含一个事物集合,或者每个集合项可以有一个单例。我查找了服务内容,发现有服务、工厂和提供者。我知道它们在功能上各不相同,而且服务可能是最容易使用的。“但我如何决定选择哪一个呢?”斯普洛特恩威尔斯,再见,再次感谢你,但我可以问最后一个问题吗?您将如何扩展该服务?一个大的$objects服务于整个数据应用程序,足够简单吗?@Sprottenwels,我不确定我是否理解你的问题。您需要扩展什么?服务/工厂/提供者可以在任何需要的地方注入(例如,注入多个控制器、其他服务、多个指令等)。服务/工厂/提供者是单例的。您的单例可以包含一个事物集合,或者每个集合项可以有一个单例。