Knockoutjs Webサイトのマッピングプラグインの例を使って作業しています。Knockout JSマッピングプラグインを使用して作成したビューモデルにプロパティを追加する
これはサンプルデータです。
var data = {
name: 'Scott',
children: [
{ id : 1, name : 'Alice' }
]
}
の例では、子の1つのマッピングを上書きする方法を示していますが、どのように私は、ベースオブジェクトのマッピングを変更します。
たとえば、「FavouriteChild」プロパティをScottに追加する場合は、どうすればよいですか?
基本マッピングでcreate関数を使用する必要があると仮定しますが、どこでも構文の例は見つかりません。
var myChildModel = function(data) {
ko.mapping.fromJS(data, {}, this);
this.nameLength = ko.computed(function() {
return this.name().length;
}, this);
}
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
EDIT:受け入れ答えからは、私は、これは
<span data-bind='text: AdditionalProperty'>
var mapping = {
create: function (options) {
//customize at the root level.
var innerModel = ko.mapping.fromJS(options.data);
innerModel.AdditionalProperty = 'Hello World';
return innerModel;
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
//use this as our model bindings
ko.applyBindings(viewModel);
レベルに追加して追加します。 –
は、返す前に結果をマップして操作する方法を示す関数を更新しました。 –
私はこれが非常に古い質問であることを知っていますが、ちょうどそれに出くわして私は提案をしたかった。マッピング時にCreateコールバックを使用するコードサンプル(KnockoutJsサイトで)は、createメソッドがマッピングオブジェクトにあることを説明していません。 Ryan、可能であれば、私はサイトの所有者にあなたのコードサンプルをあなたのものと置き換えるよう依頼します。 –