KnockoutJs Observable Arrays和Dropdownlists

时间:2012-02-05 14:48:37

标签: asp.net-mvc-3 knockout.js

我是KnockoutJs的新手,我想知道是否有人可以帮助解决这个问题。

我有一个viewmodel,从Mvc3控制器填充,绑定到一个下拉列表,这很好。

我有更多的数据存储在“platforms”observableArray中,和 我希望这些数据显示在文本框中,取决于 下拉列表中的选定值。

到目前为止,这是我的代码: -

<script type="text/javascript">
    $(document).ready(function () {
        var sampleSubmission = function () {
            this.selectedPlatform = ko.observable();
            this.platforms = ko.observableArray();

            this.showSearch = ko.observable(false);
            this.craftText = ko.observable();
            this.showSerialNumber = ko.observable(0);

            this.selectedPlatform.subscribe(function (platformId) {





            } .bind(this));
        };

        var sampleSubmissionViewModel = new sampleSubmission();
        ko.applyBindings(sampleSubmissionViewModel);

        //Load the platforms
        $.ajax({
            url: '@Url.Action("GetPlatforms", "Home")',
            type: 'GET',
            success: function (data) {
                sampleSubmissionViewModel.platforms(data);
            }
        });
    });  

</script>

有没有人对我如何实现这一点有任何想法?

提前致谢。

1 个答案:

答案 0 :(得分:5)

您可以将下拉列表的值绑定到selectedPlatform,如下所示:

<select data-bind="options: platforms, value: selectedPlatform, optionsText: 'name'"></select>

我修改了你的代码并对你想做的事情做了一些最好的猜测并创建了一个样本。 这是小提琴:http://jsfiddle.net/johnpapa/DVXH7/