在控制器之间传递数据
我说要学习AngularJS,来自许多不同的MV *框架。
我喜欢的框架,但我有麻烦在控制器之间传递数据。 假设我有一个屏幕有一些输入(input.html)和一个控制器,让我们说InputCtrl。 在我以前的MV *框架中,这将像(伪代码)一样处理: var self = this; onClick = function() { var approveCtrl = DI.resolve(ApproveCtrl); approveCtrl.property1 = self.property1; approveCtrl.property1 = self.property2; self.router.show(approveCtrl); } >它将像Controller-首先工作。 现在,在AngularJS,我处理这样: var self = this; onClick = function(){ self.$locationService.path('approve'); } >这就像View-first。 我发现很难控制创建的控制器的状态,并传递数据到它。 >将共享服务注入InputCtrl& ApproveCtrl并将所有要共享的数据放在此服务上 >这看起来像一个肮脏的工作;共享服务中的状态变为全局状态,而我只需要它将数据传递到ApproveCtrl >传递$ routeParams中的数据 >当传递了很多参数时,这会变得很杂乱 >使用$ scope事件 >在概念上,这不是我会使用事件 – 我只需要传递数据到ApproveCtrl,没有事件是 我在这里缺少什么?我创造了太多的小控制器?
在结构方面AngularJS比MVC更多模块化。
Classic MVC描述了3个简单的层,它们以这样的方式相互交互,即控制器使用视图模型化(而模型不应该直接使用View,反之亦然)。 在Angular中,您可以有多个,一些完全可选的实体,它们可以通过多种方式在彼此之间进行交互,例如: 这就是为什么有多种方式在不同的实体之间传达您的数据。您可以: >使用difference between 要么 >使用AJAX后端发送邮件 …还有很多。由于其多样性,Angular允许开发人员/设计师选择他们最舒适的方式并进行。我建议阅读AngularJS Developer Guide,在那里你可以找到一些常见问题的祝福的解决方案。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |