NodeJS mongo - 参考唯一生成的点击功能链接



这是我当前的代码,这会生成数据库中要打印到页面的"团队"列表。请注意,HTML代码是使用.jade的模板编写的,但很容易理解正在发生的事情。

团队.翡翠

div.teamList
                    form.form-horizontal(action='/team', id="teamForm")
                        div.control-group
                            label.control-label(for="teamId") Team Id:
                            div.controls
                                input#teamId.input-small(type="text")
                        div.control-group
                            label.control-label(for="teamName") Team Name:
                            div.controls
                                input#teamName.input-small(type="text")
                        div.control-group
                            div.controls
                                button#teamUpdate.btn.btn-primary.btn-mini(type="submit", value="Update Team") Update
                        div.control-group
                            label.control-label(for="newTeamName") Enter new team:
                            div.controls
                                input#newTeamName.input-small(type="text")
                        div.control-group
                            div.controls
                                button#teamConfirm.btn.btn-primary.btn-mini(type="submit", value="Save Team") Submit
                br
                div.teamList(style='border: none; background: #cecece; color: #1a1a1a; padding: 4px; width: 400px; height: 315px; overflow: auto;')
                    include showTeams

showTeams.jade

div#teamListDiv
    - if(allTeams.length > 0){
        table
            thead
                tr
                    th Name
            tbody
                tr
                    td
                        - each team in allTeams
                            include teamDisplay
    - } else {
        h3 No teams till now..
    - }

teamDisplay.jade

div.teams(id="team-#{team.key}")
  p #{team.name}

目前,这将在运行showTeams时生成数据库中所有团队的列表。teamDisplay文件将为每个团队生成一个新的div,并将 key 作为div 的名称。

我想生成一个链接,而不是在div 中生成p #{team.name},这很容易做到。但是当单击链接时,我希望teamIdteamName文本框填充相应的数据。

我在团队中有这个.js:

Team.initIndexPage = function(){
    $('#teamConfirm').click(function(){
        submitTeam();
    });
    submitTeam = function(){
        // frontend sends data - backend parses the data
        var teamForm = {
            name : $('#newTeamName').val()
        };
        // Basic validation
        $.post('/save/team', {'teamForm' : teamForm}, function(response) {
                console.log(response);
        });
    };
};

如您所见,我指的是#teamConfirm提交一个新团队,所以我的问题是......我将如何指单击任何团队链接的情况......它用正确的数据填充文本框?

任何帮助表示赞赏。

我不确定我是否 100% 遵循您所说的一切 - 但似乎您的问题与 node/mongo 没有太大关系,它更像是一个前端 JavaScript 问题。如果你想跟踪被点击的链接,你可以使用javascript的"this"上下文。

因此,如果您为所有链接指定了一个通用类名并在团队中更改了代码.js则工作如下:

$('.teamLink').click(function(){
    submitTeam($(this)); // $(this) keeps track of the actual link that was clicked.
});

然后,您可以在 submitTeam() 中获取该上下文,并使用它来根据需要操作元素。

最新更新