2013-03-25 70 views
1

說我有文件,如下ExpressJS:注射到包括翡翠使用Javascript

包括/ person.jade

.person 
    .name= name 
    .desc= desc 

現在我希望有我的網頁,點擊後成熟,注射上的按鈕之前放入文件。我想要這個,因爲我需要將人添加到頁面。我會如何去做這件事?

我應該在這種情況下使用HTML文件嗎?

回答

0

所以類似於前面的例子,我用快遞主辦玉HTML的人輸入自己的URL像這...

self.app.get('/person/:name/:desc',adddoc.person2); 

當然,person2的實現只是Jade的渲染。

.person 
    mixin personField(desc,name,valuefname,valuelname) 

然後在我的JavaScript(使用JQuery)

function stump(name, desc){ 
    $.get(
    "/person/"+desc+"/"+name, 
    "{}", 
    function(data) { 
     var $parents = $("#parents"); 
     $parents.append($(data).filter('.person')); 
    }, 
    "html" 
); 
} 
1

玉在服務器端呈現。所以你應該用ajax調用方法來返回呈現的html。另一種選擇是使用JavaScript來做到這一點:

function addPerson(name, desc, parentId){ 
    var container = document.createElement('div'); 
    container.className = 'person'; 
    var nameContainer = document.createElement('div'); 
    nameContainer.className = 'name'; 
    nameContainer.innerHTML = name; 
    container.appendChild(nameContainer); 
    var descContainer = document.createElement('div'); 
    descContainer.className = 'desc'; 
    descContainer.innerHTML = desc; 
    container.appendChild(descContainer); 
    var parent = document.getElementById(parentId); 
    parent.appendChild(container); 
} 

玉:

#personContainer 
input(onclick="addPerson('#{name}', '#{desc}', 'personContainer');", type="button") 
+0

我喜歡你原來的想法(服務器呼籲渲染HTML),我會嘗試一下。第二個我可能只是生成一個html文件,並使用它來代替使用JS來添加indv。 div的。 – Jackie 2013-03-26 15:30:37

+0

@Jackie你說得對,使用JS時會變得很大:) – karaxuna 2013-03-26 16:24:01