我说要学习AngularJS,来自很多不同的MV*框架.我喜欢这个框架,但是我在控制器之间传递数据时遇到了麻烦.
假设我有一个带有一些输入(input.html)和控制器的屏幕,让我们说InputCtrl.
此视图上有一个按钮,可以将您带到另一个屏幕,让我们说使用控制器ApproveCtrl批准(approve.html).
此ApproveCtrl需要来自InputCtrl的数据.这似乎是更大的应用程序中非常常见的情况.
在我以前的MV*框架中,这将像(伪代码)一样处理:
var self = this;
onClick = function() {
var approveCtrl = DI.resolve(ApproveCtrl);
approveCtrl.property1 = self.property1;
approveCtrl.property1 = self.property2;
self.router.show(approveCtrl);
}
Run Code Online (Sandbox Code Playgroud)
现在,在AngularJS中,我正在处理这个:
var self = this;
onClick = function(){
self.$locationService.path('approve');
}
Run Code Online (Sandbox Code Playgroud)
我发现很难控制创建的Controller的状态并将数据传递给它.我已经看过并尝试过以下方法,但在我看来,所有这些都有自己的问题:
我在这里错过了什么吗?我创造了太多小型控制器吗?我是否试图在这里过多地保留其他框架的习惯?
XLI*_*LII 56
在结构方面,AngularJS比MVC更模块化.
经典MVC描述了3个简单的层,这些层以这样的方式相互交互,即Controller使用View拼接模型(而Model不应该直接使用View,反之亦然).
在Angular中,您可以拥有多个,一些完全可选的实体,这些实体可以通过多种方式在彼此之间进行交互,例如:

这就是为什么有多种方式在不同实体之间传递数据.您可以:
要么
......还有更多.由于其多样性,Angular允许开发人员/设计师选择他们最舒适的方式并继续进行.我建议您阅读AngularJS开发人员指南,在那里您可以找到一些常见问题的幸福解决方案.
如果您的目的是简单地在两个视图之间共享数据,那么服务可能就是您的选择.如果您对持久存储到数据存储感兴趣,可能需要考虑某种后端服务,例如REST API.看看这个$ http服务.
| 归档时间: |
|
| 查看次数: |
30343 次 |
| 最近记录: |