我在构建视图模型时遇到问题,该视图模型由来自服务器的一些数据和一些手动添加的数据组成。
我不断从下面的代码中得到m()未定义: JSFiddle
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" />
答案 0 :(得分:2)
映射插件不会将您的对象仅转换为可观察的属性。
所以ko.mapping.fromJS(entity)
来电m
之后不会是ko.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")
};