0

页面加载完成后,我需要从数据库中获取一个值,并运行一个函数,该函数将根据已检索的值填充多个下拉列表。就像表单控件的更改事件。

如何使用 Knockout.js 做到这一点?

谢谢。

4

2 回答 2

0

http://knockoutjs.com/examples/controlTypes.html 只需将绑定替换为 ko.observableArray 即可,如下所示http://knockoutjs.com/documentation/options-binding.html。然后用加载的数据填充这个数组。

于 2012-09-03T19:16:19.447 回答
0

这是一个快速而肮脏的例子。这个想法是:

  1. 设置一个可观察的数组来保存你的下拉数据。最初,数组将为空,您的下拉列表将没有内容。
  2. 用于getJSON从您的服务器检索数据。
  3. 填写回调的下拉列表getJSON。如果我对您的理解正确,您将不会检索下拉列表的实际内容,而是会帮助您决定将显示哪些选项的其他一些信息。我将这个想法融入到示例中。

顺便说一句,国家不一定是字符串数组。它可以是一组复杂的 JS 对象。但是,您必须扩展您的data-bind="options: ..."绑定optionsTextoptionsValue指明您的对象的哪个属性是标签和值。在这里查看更多详细信息。

var CompanyViewModel = function()
{
    var self = this;

    self.Countries = ko.observableArray();

    $.getJSON('api/countries', function(data) {
        if(data == 1)
        {
            self.Countries(['France', 'Germany', 'Spain'])
        } else if(data == 2)
        {
            self.Countries(['Holland', 'Belgium', 'Luxemburg']);
        }
    });
 }
于 2012-09-03T19:16:39.473 回答