如何为淘汰赛的观测值的初始值(级联<选择>清单)? [英] How to set initial values for Knockout's observables (for cascading <select> lists)?

查看:198
本文介绍了如何为淘汰赛的观测值的初始值(级联<选择>清单)?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我测试了非常真棒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.

http://jsfiddle.net/ZMvNM/5/

这篇关于如何为淘汰赛的观测值的初始值(级联&LT;选择&GT;清单)?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆