AngularJS:单击并将整个对象从一个页面传递到另一个页面

时间:2016-06-08 14:17:36

标签: angularjs controller

我正在使用AngularJS构建应用程序。

我已经用每个用户的数据动态构建了这个表:

<div ng-controller="contactsCtrl">
    <table>
        <thead>
            <tr>
                <th>Edit</th>
                <th>Name</th>
                <th>Address</th>
                <th>Telephone</th>
                <th>Email</th>
            </tr>
        </thead>
        <tbody>
            <tr ng-repeat="contact in contacts">
                <td><div ng-click="{{contact}}"> Edit</div></td>
                <td>{{contact.name}}</td>
                <td>{{contact.adresse}}</td>
                <td>{{contact.phone}}</td>
                <td><a href="mailto:{{contact.email}}"> Email</a></td>
            </tr>
        </tbody>
    </table>
</div>

我添加了一个按钮修改,其中包含 ng-click = {{contact.name}} 。当我点击该按钮时,我希望所选用户的信息以下面的形式显示,以便进行编辑,然后保存新数据。

<div ng-controller='detailsCtrl'>
    <div class="col-md-6 col-sm-6 col-xs-6">
        <h2>{{contact.name}}</h2>
        <address>
            <p>{{contact.adresse}}</p>
            <p>{{contact.adresse}}</p>
            <p>{{contact.phone}}</p>
            <p>{{contact.email}}</p>

        </address>
    </div>
</div>

如何将表格(contactsCtrl)中的按钮(带有所有属性:name,addresse,telefone和email)传递给表单(DetailsCtrl)?

我已阅读并收听了大量的教程,但我越来越困惑。请帮忙

1 个答案:

答案 0 :(得分:0)

您可能希望在两个控制器中都有一个通用服务,或者您可以在控制器之间进行广播/发射。之后,以ng-click传递整个对象,即不是ng-click = {{contact.name}},你可以执行ng-click =&#34; passContact(contact);&#34;

并在passContact函数中通过broadcast / emit OR service传递对象。

如果您想为此获取代码,请使用您的代码创建一个小提琴。