Jsfiddle: http://jsfiddle.net/HCQAd/
var Editor = function(v1){
var self = this;
self.load_editor = function(item){
item.prop = "Test4";
}
}
var sectionView = function(){
var self = this;
self.items = ko.observableArray();
self.load_items = function(){
setTimeout(function(){
var items = [{prop:'Test'}, {prop:'Test2'}, {prop:'Test3'}];
self.items(items);
}, 500);
};
self.edit_item = function(item)
{
if(self.editor == null)
{
self.editor = new Editor(self);
self.editor.load_editor(item);
}
}
ko.applyBindings(self, $('.items_container')[0]);
}
var v1 = new sectionView();
v1.load_items();
<div class="items_container">
<!-- ko foreach: items -->
<span data-bind="text: prop"></span>
<a href="javascript:void(0);" data-bind="click: $parent.edit_item">edit</a>
<br/>
<!-- /ko -->
</div>
編集リンクをクリックすると、エディターが読み込まれ、編集中のアイテムが渡されます。プロパティを新しい値に設定すると、元のビューが更新されませんか? 元のビューで更新するにはどうすればよいですか?