【问题标题】:On Click Display content based on button idOn Click 根据按钮 id 显示内容
【发布时间】:2016-10-27 22:22:58
【问题描述】:

我有一个由动态创建的按钮打开的模式,我想根据按钮的 cid(生成的按钮的属性)显示自定义内容。

我有以下 EJS 代码:

<ul>
  <% company.forEach(function(comp) { %>
   <li><%= comp.companyName %> <button class="btn btn-primary manageCompany" data-cid=<%=comp._id%> data-toggle="modal" data-target="#manageCompany_pp">Manage</button> </li>
  <% }); %>
</ul>

这会根据从节点应用程序传递到 EJS 模板的 json 数据生成几个按钮,单击它会打开下面的模式:

  <div class="modal fade " id="manageCompany_pp" tabindex="-1" cid="" role="dialog" aria-labelledby="manageCompany_pp">
                <div class="modal-dialog modal-lg" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                <span aria-hidden="true">&times;</span>
                            </button>
                            <h4 class="modal-title" id="manageCompany_content">Manage Company</h4>
                        </div>
                        <div class="modal-body">
                          <div class='manageCompanyAlert'></div>
                          Name: <%= company[cid].companyName %> //<-- get cid attr .. somehow
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
                        </div>
                    </div>
                </div>
            </div>

这就是我将所需的 id 从按钮传递到模式的方式:

script.js

$(document).ready(function() {
        $('#manageCompany_pp').on('show.bs.modal', function(event) {
        var button = $(event.relatedTarget); // Button that triggered the modal
        var cid = button.data('cid'); // Extract info from data-* attributes
        console.log('here' + cid);
        var modal = $(this);
        modal.attr('cid', cid);
    });
});

我的想法是使用 ejs,从 div 中检索 cid 属性,然后以某种方式将其插入到如下行中: compName : 但这不起作用,我正在寻找任何方法来实现这一点,如果有办法做我需要的,也可以使用 juqery 和 angularjs。

【问题讨论】:

    标签: javascript jquery angularjs node.js ejs


    【解决方案1】:

    如果有办法做我需要的事情,也可以使用 jquery 和 angularjs

    假设所有代码都使用 ng-click 有一个共同的范围,那么你可以使用 Angular 来做到这一点

    <li><%= comp.companyName %> <button ng-click="selectedId = <%=comp._id%>" class="btn btn-primary manageCompany" data-cid=<%=comp._id%> data-toggle="modal" data-target="#manageCompany_pp">Manage</button> </li>
    

    这样angular可以在点击时更新模态

            <div class="modal-body">
                <div class='manageCompanyAlert'></div>
                Name: {{ selectedId }}  <!-- get cid attr -->
            </div>
    

    【讨论】:

    • 关闭,但我还需要在 ejs 代码中使用它,例如 Name:
    • 为什么是男人?你混淆了太多的框架。选择一个并坚持下去
    • 我正在使用 ejs 和 angular,不是很多,我这样做是因为每个都简化了不同的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 1970-01-01
    • 2014-01-22
    • 1970-01-01
    • 2011-09-13
    • 2019-10-05
    • 2013-01-30
    相关资源
    最近更新 更多