我打算学习来自许多不同的MV *框架的AngularJS。我喜欢框架,但是在控制器之间传递数据时遇到了麻烦。
假设我有一个带有一些输入(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);
}
现在,在AngularJS中,我这样处理:
var self = this;
onClick = function(){
self.$locationService.path('approve');
}
我发现很难控制创建的Controller的状态并将数据传递给它。我已经看到并尝试了以下方法,但是我认为所有方法都有其自身的问题:
我在这里想念什么吗?我会创建太多小型控制器吗?我是否在这里过多地坚持其他框架的习惯?
就结构而言,AngularJS比MVC更模块化。
经典MVC描述了3个简单的层,它们相互交互,以便控制器将模型与View缝合在一起(模型不应该直接与View一起使用,反之亦然)。
在Angular中,您可以有多个完全可选的实体,它们可以通过多种方式相互交互,例如:
这就是为什么有多种方法在不同实体之间传递数据的原因。您可以:
要么
…还有更多。由于其多样性,Angular允许开发人员/设计人员选择最适合自己的方式进行下去。我建议你阅读AngularJS开发指南,你可以找到
祝福 解决一些常见问题。
问题内容: 我是iOS和Objective-C以及整个MVC范例的新手,我坚持以下几点: 我有一个充当数据输入表单的视图,我想给用户选择多个产品的选项。产品在另一个视图上以列出,并且我启用了多个选择。 我的问题是,如何将数据从一个视图传输到另一个视图?我将把选择保留在一个数组中,但是如何将其传递回先前的数据输入表单视图,以便在提交表单时将其与其他数据一起保存到Core Data? 我到处冲浪,看到
问题内容: 我有一个基本的控制器来显示我的产品, 在我看来,我正在列表中显示此产品 我要尝试做的是,当某人单击产品名称时,我有另一个名为cart的视图,其中添加了该产品。 因此,我的疑问是,如何将这种点击产品从第一个控制器传递给第二个?我认为购物车也应该是控制器。 我使用指令处理click事件。我也觉得我应该使用服务来实现上述功能,只是想不通如何?因为购物车将是预定义的,所以添加的产品数可能是5/
问题内容: 当使用AngularJS服务尝试在两个控制器之间传递数据时,我的第二个控制器在尝试从该服务访问数据时始终会收到未定义的信息。我猜这是因为第一个服务执行的是$ window.location.href,并且我认为这正在清除服务中的数据?我是否可以将URL更改为新位置,并将数据保留在第二个控制器的服务中?当我运行下面的代码时,第二个控制器中的警报始终未定义。 app.js(定义服务的位置)
我试图在不同FXML场景的控制器之间传递数据。但是我不能将数据传递给另一个控制器。这是我的第一个控制器。 } 这是第二个控制器。 }
问题内容: 我想单击一列并将单元格索引发送到新阶段。但是我无法将参数()传递给另一个控制器。我已经尝试了所有方法,但仍然无法正常工作。 主控制器 EditClientController 问题答案: 如果要在FXML文件中指定控制器(因此您不能使用Deepak的答案), 并且 要访问方法中的索引(因此您不能使用José的答案),则可以使用控制器工厂:
问题内容: 我正在尝试将应用程序从Objective-C转换为Swift,但是我找不到如何使用Swift在视图之间传递数据。我的Objective-C代码是 这样做是从根本上获取变量TheNum,并将其传递给另一个视图控制器上的变量num。我知道这可能是一个简单的问题,但是我对Swift感到非常困惑,因此,如果有人可以解释他们如何将其更改为Swift,将不胜感激! 谢谢 问题答案: 假设我们站在