ASP.NET MVC 4 プロジェクトで Durandal JS を使用しています。
次のように、いくつかのオブザーバブルを Html ビューにバインドしようとしています。
<div id="nodetype" class="k-block ">
<div class="pull-left" >
<h3>Enter HVaR Parameters</h3>
<ul>
<li>
<label>Liquidataion Days): </label>
<input id="liquidDays" data-bind="value: LiquidDays" class="k-textbox" />
</li>
</ul>
</div>
</div>
ただし、「LiquidDays」オブザーバブルは「0」の値のままです。以下のViewModelコードが「LiquidDays」を更新し、それをhtmlテキストフィールドにバインドすることを期待しています:
ViewModel コード:
var vm = kendo.observable({
activate: activate,
onclickUpdate: UpdateMyStuff,
title: title,
LiquidDays: 0,
ConfLevelPct: 99,
periodType: "",
attached: function (view) {
loadHVarConfig();
kendo.bind($("#nodetype"), vm);
},
});
return vm;
サーバー側へのAjax呼び出しを使用したバインディング関数は次のとおりです。
function loadHVarConfig() {
// LOAD CONFIG PARAMETERS !!
var jq = $.ajax({
url: '/api/breeze/GetVaRConfig',
type: "get",
dataType: "json",
contentType: 'application/json',
});
jq.success(function (data) {
bindHvarParams(data); // ON SUCCESS BIND TO VIEW MODEL
});
}
function bindHvarParams(data) {
// Set ViewModel properties from data array
vm.set("LiquidDays", data[0].liquidationDays);
vm.LiquidDays = data[0].liquidationDays;
vm.ConfLevelPct = data[0].confidenceLevel;
vm.numOfObserv = data[0].historicPeriodLength_size;
vm.periodType = data[0].historicPeriodLength_unit;
vm.holidayCal = data[0].calendarId;
vm.startDateFixedPeriod = data[0].historicPeriodStart;
}
このリンクをガイドとして使用していますが、何か不足しています: http ://docs.kendoui.com/getting-started/framework/mvvm/observableobject
ありがとうございました。ボブ