2017-08-30 118 views
0

我有一个模板,我试图在引导弹窗中呈现,但是当我执行下面的代码时,它只呈现[object Object]。是否有可能以某种方式呈现完整的模板?在属性中渲染模板

<a data-toggle="popover" data-placement="top" data-trigger="hover" title="sometitle" data-bind="attr: { 'data-content': { template: { name: 'a-template', data: somedata} } }"></a> 

感谢您的圣人建议和更好的智慧!

回答

1

您可以做的是在计算字段中呈现模板并将该字段分配给该数据内容属性。请看下图:

指定模板

<script id="myTemplate" type="text/html"> 
     // Some HTML here 
</script> 

基于上述指定模板计算字段。

<script> 
function myViewModel() { 
    var self = this; 
    self.templateField= ko.computed(function(){ 
     var temp = $("<div>"); 
     ko.applyBindingsToNode(temp[0], { template: { name: 'templateName', data: self } }); 
     var html = temp.html(); 
     temp.remove(); 
     return html; 
    }, self); 
} 
</script> 

现在在计算属性中使用上面创建的计算字段。

<anyElement data-bind="attr: {'data-content': templateField}"/> 
+0

我为此写了自己的帮手,但这个答案可能工作正常,所以我接受了它。 :) 不管怎么说,还是要谢谢你。 – Ms01