如何通过单击按钮从我的控制器中选择数据

时间:2014-08-15 22:50:26

标签: javascript angularjs

我有一个从JSON获取数据的视图,使用该数据填充按钮列表(包含有关数据的基本信息),然后在单击按钮时,我希望另一个面板填充绑定到该数据的数据按钮中的数据。

<div ng-controller="QueueCtrl">
    <ul class="list-unstyled" ng-repeat="ticket in tickets">
        <li><div data-queue-item></div></li>
    </ul>
</div>

此部分使用包含我想要显示的故障单信息的每个列表项填充列表。

当我按下按钮以填充其他面板时,如何仅选择故障单的数据?例如,页面上的下一部分可能是一个按钮,它将为数据中的人员构建一封电子邮件:(尚未测试此代码,如果我做错了,请给我指点。

<a href="mailto:{{ ticket.email_address }}?subject={{ ticket.ticket_number }}&body=Hello%20{{ ticket.first_name }}" type="button" class="btn btn-default" title="pre-formatted email">{{ ticket.email_address || "cannot find email address"}}</a>

问题是,我不知道如何告诉它哪张票可以参考...

谢谢!

2 个答案:

答案 0 :(得分:0)

您只需在范围内创建对所选故障单的引用即可。例如:

<div ng-controller="QueueCtrl">
    <ul class="list-unstyled" ng-repeat="ticket in tickets">
        <li ng-click="cont.selectedTicket = ticket"><div data-queue-item></div></li>
    </ul>
</div>

然后在下面的面板中:

<div class="slected-ticket-info">
    <div>{{cont.selectedTicket.someValue}}</div>
</div>

其中someValue只是您的故障单对象上的某个子密钥。或者根据您的<a>示例:

<a href="mailto:{{ cont.selectedTicket.email_address }}?...

只需确保在父控制器中创建容器变量,以便子项可以引用它:

$scope.cont = {};

答案 1 :(得分:0)

这是一个有效的例子,希望它能帮到你

http://plnkr.co/edit/7rAqx9nMBuzhdEAUQpZF?p=preview

您只需要使用参考

  $scope.selectedTicket = {};