将数据从控制器传递到另一个非子控制器或父控制器的最佳实践?

时间:2014-08-29 11:01:14

标签: angularjs

我对角度很新,在使用视频教程和阅读一些文档之后,我决定重建我的旧应用程序作为angularjs的一个例子。

所以这个应用程序有一个表格显示一些数据。它下面有一个表单,可以帮助您修改列表中的数据。每行都有一个按钮,允许您编辑该行,然后填写表单中的所有字段,然后您可以保存或取消更改。

我制作了一个控制器来处理列表,它运行正常,它从http获取一个json。 我使用ng-click我的编辑按钮来触发该控制器中的一个功能,为它提供它应该编辑的整个对象。

我制作了一个控制器来处理编辑应该进行的形式,我并没有真正找到一个非hacky'将数据从列表控制器传递到表单控制器的方法。

所以,我的问题是:从列表控制器到表单控制器获取此数据的最佳实践和/或常用方法是什么?

3 个答案:

答案 0 :(得分:0)

您可以将整个对象作为参数传递

<row ng-repeat="theModelInRow in modelList" ng-click="edit(theModelInRow)">

答案 1 :(得分:0)

这取决于您使用表单控制器的方式。如果使用ng-controller属性在模板中使用它,则此控制器可以访问父作用域,因此您可以使用列表控制器的数据。 (虽然注意到一些范围继承怪癖通过“点符号”解决,但很好地解释了egghead.io:https://egghead.io/lessons/angularjs-the-dot

如果您在另一个网址(例如/items/2/edit)中启动编辑表单并在路由配置中处理它,则可以使用resolve属性将任何数据传递给控制器​​:{ {3}}。

答案 2 :(得分:0)

如果表单控制器不是视图中列表控制器的嵌套控制器,那么您可以使用rootScope。