我们在 ASP.NET MVC 4 项目中使用 Durandal JS:
我只是想将一些 observables 绑定到我的 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 文本字段:
视图模型代码:
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
谢谢你。鲍勃