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

时间:2013-01-25 20:01:43

标签: javascript node.js mongodb mongoose

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

Team.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文本框中填充相应的数据。

我在team.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提交一个新的团队,所以我的问题是......我将如何查看点击任何团队链接的情况...它填充具有正确数据的文本框?

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

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

因此,如果您为所有链接提供了一个公共类名,并将team.js中的代码更改为以下内容:

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

然后你可以在submitTeam()中获取该上下文并使用它来操纵你想要的元素。