2015-03-25 93 views
0

我有一個將(JSON-)對象綁定到我的視圖的問題。Knockout中的綁定對象

我有我從我的REST服務中獲得的以下對象。 enter image description here

現在我想將這個對象綁定到我的視圖。我嘗試這樣做:

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,任何幫助都會很棒!非常感謝你。

回答

0

而是寫性能逐一你可以使用ko.mapping插件:

只寫類似的東西:

btnSaveClick: function (e) { 
    debugger; 
    var request = ko.mapping.toJS(viewModel.test); 

    Application1.db.update(params.obj).done(function (data) { 
     Application1.app.back(); 
    }); 
}