我对角度很新,在使用视频教程和阅读一些文档之后,我决定重建我的旧应用程序作为angularjs的一个例子。
所以这个应用程序有一个表格显示一些数据。它下面有一个表单,可以帮助您修改列表中的数据。每行都有一个按钮,允许您编辑该行,然后填写表单中的所有字段,然后您可以保存或取消更改。
我制作了一个控制器来处理列表,它运行正常,它从http获取一个json。 我使用ng-click我的编辑按钮来触发该控制器中的一个功能,为它提供它应该编辑的整个对象。
我制作了一个控制器来处理编辑应该进行的形式,我并没有真正找到一个非hacky'将数据从列表控制器传递到表单控制器的方法。
所以,我的问题是:从列表控制器到表单控制器获取此数据的最佳实践和/或常用方法是什么?
答案 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。