0

サーバーからのデータと手動で追加されたデータで構成されるビュー モデルの構築に問題があります。

以下のコードから、m() が定義されていないことが わかります。

function getServerData()
{
     var m = 
         {
             FlowID:5,
             Amount:120
         };
    return m;
}

var entity = getServerData();

var vm = 
{
    m: ko.mapping.fromJS(entity),
    x: ko.observable("additional prop")
};

ko.applyBindings(vm);

次のようにバインドしようとしています。

<input data-bind="value: x()" />
<input data-bind="value: m().FlowID" />
<input data-bind="value: m().Amount" />
4

1 に答える 1

2

マッピング プラグインは、オブジェクトをオブザーバブルに変換するのではなく、そのプロパティのみに変換します。

したがって、ko.mapping.fromJS(entity)呼び出し後mko.observable.

したがって、次のように書くだけです。

<input data-bind="value: m.FlowID" />
<input data-bind="value: m.Amount" />

JSFiddleのデモ。

元のバインディングを機能させたい場合は、以下を変更する必要がありますvm

var vm = 
{
    m: ko.observable(ko.mapping.fromJS(entity)),
    x: ko.observable("additional prop")
};
于 2013-09-20T19:37:50.103 に答える