Knockout 中的绑定对象
Binding object in Knockout
我在将 (JSON-) 对象绑定到我的视图时遇到问题。
我有以下对象,它是从我的 REST 服务中获得的。
现在我想将此对象绑定到我的视图。我试过这个:
var viewModel = {
test: ko.mapping.fromJS(params.obj),
ID: params.obj.ID,
//Bezeichnung: ko.observable(params.obj.Bezeichnung),
//MaxRunawayTime: ko.observable(params.obj.MaxRunawayTime),
btnSaveClick: function (e) {
debugger;
//params.obj.Bezeichnung = viewModel.Bezeichnung();
//params.obj.MaxRunawayTime = viewModel.MaxRunawayTime();
Application1.db.update(params.obj).done(function (data) {
Application1.app.back();
});
}
};
我的 dxView:
<div data-options="dxView : { name: 'TrackerEdit', title: 'TrackerEdit' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } " >
ID_Tracker:<div data-bind="dxTextBox: {value: ID, disabled: true}"></div>
Bezeichnung:<div data-bind="dxTextBox: {value: test.Bezeichnung}"></div>
Max. Ausreisezeit:<div data-bind="dxNumberBox:{min:0, max:100, value:test.MaxRunawayTime, showSpinButtons: true}"></div>
<!--Bezeichnung:<div data-bind="dxTextBox: {value: Bezeichnung}"></div>
Max. Ausreisezeit:<div data-bind="dxNumberBox:{min:0, max:100, value:MaxRunawayTime, showSpinButtons: true}"></div>-->
<div data-bind="dxButton: {text: 'Save', onClick: btnSaveClick}"></div>
</div>
请查看注释的代码行。这样就可以了。但我不喜欢将每个变量分开绑定并且必须将其写回我的原始对象。我想直接绑定我原来的对象
我是 Knockout 的新手,任何帮助都将非常有用!非常感谢。
您可以使用 ko.mapping 插件:
而不是一一编写属性
就这样写吧:
btnSaveClick: function (e) {
debugger;
var request = ko.mapping.toJS(viewModel.test);
Application1.db.update(params.obj).done(function (data) {
Application1.app.back();
});
}
我在将 (JSON-) 对象绑定到我的视图时遇到问题。
我有以下对象,它是从我的 REST 服务中获得的。
现在我想将此对象绑定到我的视图。我试过这个:
var viewModel = {
test: ko.mapping.fromJS(params.obj),
ID: params.obj.ID,
//Bezeichnung: ko.observable(params.obj.Bezeichnung),
//MaxRunawayTime: ko.observable(params.obj.MaxRunawayTime),
btnSaveClick: function (e) {
debugger;
//params.obj.Bezeichnung = viewModel.Bezeichnung();
//params.obj.MaxRunawayTime = viewModel.MaxRunawayTime();
Application1.db.update(params.obj).done(function (data) {
Application1.app.back();
});
}
};
我的 dxView:
<div data-options="dxView : { name: 'TrackerEdit', title: 'TrackerEdit' } " >
<div data-options="dxContent : { targetPlaceholder: 'content' } " >
ID_Tracker:<div data-bind="dxTextBox: {value: ID, disabled: true}"></div>
Bezeichnung:<div data-bind="dxTextBox: {value: test.Bezeichnung}"></div>
Max. Ausreisezeit:<div data-bind="dxNumberBox:{min:0, max:100, value:test.MaxRunawayTime, showSpinButtons: true}"></div>
<!--Bezeichnung:<div data-bind="dxTextBox: {value: Bezeichnung}"></div>
Max. Ausreisezeit:<div data-bind="dxNumberBox:{min:0, max:100, value:MaxRunawayTime, showSpinButtons: true}"></div>-->
<div data-bind="dxButton: {text: 'Save', onClick: btnSaveClick}"></div>
</div>
请查看注释的代码行。这样就可以了。但我不喜欢将每个变量分开绑定并且必须将其写回我的原始对象。我想直接绑定我原来的对象
我是 Knockout 的新手,任何帮助都将非常有用!非常感谢。
您可以使用 ko.mapping 插件:
而不是一一编写属性就这样写吧:
btnSaveClick: function (e) {
debugger;
var request = ko.mapping.toJS(viewModel.test);
Application1.db.update(params.obj).done(function (data) {
Application1.app.back();
});
}