2011-02-06 56 views
2

我正在使用KnockoutJS来显示图像列表。假设我正在使用模板X来显示此列表,并且我已经定义了另一个模板Y以在选定图像的单独对话框中显示细节。我现在面临的问题所选择的图像这一细节模板Y.下面结合我的实际视图的模拟/部分代码在单个视图中使用多个模板和绑定

视图模型:

var viewModel { 
    photos:ko.observableArray(//list of photos), 
    showDetails:function(item){ 
     //show the details of the selected image in dialog 
    } 
}; 

应用为

ko.applyBindings(viewModel); 

结合这是如何定义X的

<script id="X" type="text/html"> 
    {{each(i,item) photos()}} 
     <a href="javascript:;" data-bind="click:function(){showDetails(item);}">show Image</a> 
    {{/each}} 
</script> 

这是如何应用模板

<div class="list" data-bind="template: {name:'X'}"></div> 

这是模板y的样机

<script id="Y" type="text/html"> 
    <img src="{url}" /> 
</script> 

我应该如何界定showDetails功能应用绑定到模板Y'

回答

1

这是一个示例:http://jsfiddle.net/rniemeyer/MCQgY/

最简单的方法是定义一个代表所选照片的​​观察值。然后,点击绑定就需要通过调用它来设置observable:viewModel.selectedPhoto($ data)。

希望这会有所帮助。如果您有其他疑问/问题,请告诉我。

+0

谢谢。我正在尝试相同的事情,而不是将值设置为viewModel.selectedPhoto($ data)我试图viewModel.selectedPhoto = $ data – frictionlesspulley 2011-02-07 05:41:28

相关问题