2016-06-13 11 views
0

私はViewModelを持っており、編集リンクがクリックされた後に複雑なオブジェクトを持つ観測可能なプロパティを持っています。これは、一連のグループを管理する基本的な例です。ユーザーは「編集」リンクをクリックすることができ、SelectedGroupプロパティでそのグループをキャプチャしたいと思います。ノックアウトJS - 複雑なオブジェクトを観測可能に初期化する方法

しかし、どのように私はSelectedGroupを初期化し、このオブジェクトのすべての特性を最初に観察可能なものにするべきかはわかりません。

function ManageGroupsViewModel() { 
    var self = this; 
    self.Groups = ko.observableArray(); 
    self.IsLoading = ko.observable(false); 
    self.SelectedGroup = ko.observable(); 
} 

答えて

1

通常は、SelectedGroupnullことから始めたい:

self.SelectedGroup = ko.observable(null); 

...そしてあなたがグループを編集する準備ができたら、次に、ちょうど新しいインスタンスに設定します。そのインスタンスが観測の特性を必要とする場合、あなたはManageGroupsViewModelのためにやったようにそれらを作成します。

function GroupVM() { 
    this.name = ko.observable(""); 
    this.members = ko.observableArray(); 
} 

鉱山の
// Start editing a group 
yourGroupsViewModel.SelectedGroup(new GroupVM()); 

This other answerがこれを行うのはかなり徹底した例があります。

関連する問題