如何为淘汰赛的观测值的初始值(级联&LT;选择&GT;清单)? [英] How to set initial values for Knockout's observables (for cascading <select> lists)?
问题描述
我测试了非常真棒Knockoutjs。我现在面临一个特殊的问题。
I am testing out the very awesome Knockoutjs. I am facing a peculiar problem.
我发现了一个类似的问题:<一href=\"http://stackoverflow.com/questions/6648991/knockout-js-binding-initial-default-value-of-dropdown-select-list\">Knockout JS绑定下拉列表(选择)列表的初始/默认值,但它是没有帮助,因为我的是级联列表。
I found a similar question: Knockout JS binding initial/default value of dropdown (select) list, but it is not helping, as mine are cascading lists.
我把我的initialModel如下,利用服务器的数据。
I make my initialModel as follows, using data from server.
var initialModel = @Html.Raw(JsonConvert.SerializeObject(Model)) ;
然后我定义我的ViewModel如下:
Then I define my viewModel as follows.
var viewModel = {
evaluationGroups :ko.observableArray(initialModel.EvaluationGroups),
SelectedEvaluationArea:ko.observable(initialModel.selectedEvaluationArea ? initialModel.selectedEvaluationArea.Id :null ),
SelectedEvaluationGroup :ko.observable(initialModel.selectedEvaluationGroup)
}
现在,我想级联选择
列表。因此,我结合是下。
Now, I want cascading select
lists. Hence my binding is as under.
<fieldset>
<legend>Evaluation Group and Area</legend>
<p>
<select id="EvaluationGroupId" name="EvaluationGroupId" data-bind='options: evaluationGroups, optionsText:"Title", value:SelectedEvaluationGroup, optionsCaption: "Select Group..."'></select>
</p>
<p>
<select id="EvaluationAreaId" name="EvaluationAreaId" data-bind='options: SelectedEvaluationGroup()? SelectedEvaluationGroup().EvaluationAreas:null, optionsValue: "Id", optionsText:"Title", value:SelectedEvaluationArea, optionsCaption: "Select Area..."'></select>
</p>
</fieldset>
问题是,我无法提取我的服务器数据的初始值。如果我看到, viewModel.SelectedEvaluationGroup
的值,当页面刚刚加载,使用默认值,我看未定义
。但是,如果我看到 initialModel.selectedEvaluationGroup
,它是完整的对象,符合市场预期。我究竟做错了什么?这难道不是初始化淘汰赛的观测量的正确方法是什么?
The problem is, I am unable to extract the initial value from my server data. If I see, the value of viewModel.SelectedEvaluationGroup
, when the page has just loaded, with default values, I see undefined
. However, if I see initialModel.selectedEvaluationGroup
, it is the full object, as expected. What am I doing wrong? Is this not the correct way to initialize Knockout's observables?
推荐答案
也许你已经忘记运行applyBindings命令?
Maybe you have forgotten to run the applyBindings command?
即
ko.applyBindings(viewModel);
更新
我曾与你的jsfiddle一出戏。似乎是幸福绑定到初始值,当它被手动设置为从主阵列的。
Update
I have had a play with your jsfiddle. Seems it is happy to bind to initial values when it is manually set to ones from the main array.
这篇关于如何为淘汰赛的观测值的初始值(级联&LT;选择&GT;清单)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!