私はノックアウトを学んでおり、選択可能なユーザーのリストを作成するページを作成しようとしていました。JSFiddle: http://jsfiddle.net/Just/XtzJk/3/ (データ割り当てを正しく取得できません)。
以下のようにコントローラーを呼び出すと、ページでデータ割り当てが機能し、期待どおりにコントロールにバインドされます
$.getJSON("/Wizard/GetUsers",function(allData){
var mappedUsers = $.map(allData.AllUsers, function(item){return new User(item)});
self.AllUsers(mappedUsers);
if(allData.SelectedUsers != null){
var mappedSelectedUsers = $.map(allData.SelectedUsers, function(item){return new User(item)});
self.SelectedUsers(mappedSelectedUsers);}
});
問題:
a.) 私が書いた JSFiddle の何が問題になっていますか? 動作しました。
b.) 私のコードでは、選択したチェックボックスの関数を呼び出すことができますが、関数で受け取った "User" パラメータに格納されている値を取得できません。Chrome JS コンソールでは、ユーザー オブジェクトに正しい値が保存されていることがわかりますが、それを取得できません。ko.toJS() を実行してこれを取得しました。
ありがとう。
編集: OK、JSFiddle が機能するようになりました。フレームワークで Knockout.js を選択する必要がありました。更新されたフィドル: http://jsfiddle.net/Just/XtzJk/5/
また、選択したチェックボックスの値を取得するために私がやった
ko.toJS(user).userName
しかし、リストから値を選択し、クリックして別の「選択済み」リストに移動し、前のものから値を削除するというアプローチをとると思います。KnockoutJS: How to add one observableArray to another?この投稿からこのアイデアを得ました: