2013-06-18 25 views
0

实际上,我在使用渲染的模板添加动态内容时面临问题。在渲染的引导弹出式模板中添加动态内容

酥料饼的召唤:

$(selectorId).popover({ 
     placement: 'bottom', 
     title: 'New Post', 
     html: 'true', 
     content: _template, 
     container: 'body', 
}); 

渲染HTML模板

<div> 
    <label>Name</label><input type="text" name="name" id="name" /> 
    <label>Message</label><input type="text" name="message" id="messgae" /> 
    <label>Select Article</label><select name="article" id="article"></select> 
    <input type="button" value="submit"> 
</div> 

只需要专注于 “文章”。选择框是空的模板和渲染后我试图追加文章数据,但它不工作。

从分贝追加数据来选择框

$.each(articles,function(){ 
    $("#article").append(this.articleName); 
});  

制品是JSON阵列

[ 
    { 
     'id': 1, 
     'articleName': 'article1' 

    }, 
    { 
     'id': 2, 
     'articleName': 'article2' 

    }, 
    { 
     'id': , 
     'articleName': 'article3' 

    } 
] 

问题:选择框被显示为空。

目标:每当弹出窗口打开时,用户可以从选择框中选择文章。

+0

您的代码是否适用于填充选择框,如果它在弹出窗口之外?你什么时候调用填充代码?如果您提供比没有上下文的片段更完整的代码,我们可以提供更好的帮助。 –

+0

你可以创建一个小提琴演示,这样的问题可以更容易理解? – SaurabhLP

+0

'articles'变量中存储了什么? – paulitto

回答

0

要附加物品名称来选择框,而你应该有附加选项,HTML

因此,它应该是这样的:

$.each(articles,function(){ 
    $("#article").append("<option value='"+this.articleName+"'>"+this.articleName+"</option>"); 
}); 

更新:

另一个问题可能是因为您试图在选项框中附加选项,而该页面上尚不存在选项。 所以,如果要附加模板作为一个字符串(通过“内容”属性),就可以开始撰写TEM板需要选择相应的选项:

var _template = "<select>"; 
$.each(articles,function(){ 
    _template +="<option value='"+this.articleName+"'>"+this.articleName+"</option>"; 
}; 
_template+= "</select>"; 

,或者您也可以使用“容器”属性,并通过

+0

哦..谢谢..但它仍然没有追加,我认为问题是它无法在已经呈现的模板中追加数据。 –

+0

如果你正在使用'$(“#article”)',这个元素应该已经存在于页面上,而popover在添加新的内容时,打开它时,请看看我的更新 – paulitto

+0

是的。它的工作很棒......谢谢@paulitto –