页面加载完成后,我需要从数据库中获取一个值,并运行一个函数,该函数将根据已检索的值填充多个下拉列表。就像表单控件的更改事件。
如何使用 Knockout.js 做到这一点?
谢谢。
页面加载完成后,我需要从数据库中获取一个值,并运行一个函数,该函数将根据已检索的值填充多个下拉列表。就像表单控件的更改事件。
如何使用 Knockout.js 做到这一点?
谢谢。
http://knockoutjs.com/examples/controlTypes.html 只需将绑定替换为 ko.observableArray 即可,如下所示http://knockoutjs.com/documentation/options-binding.html。然后用加载的数据填充这个数组。
这是一个快速而肮脏的例子。这个想法是:
getJSON
从您的服务器检索数据。getJSON
。如果我对您的理解正确,您将不会检索下拉列表的实际内容,而是会帮助您决定将显示哪些选项的其他一些信息。我将这个想法融入到示例中。顺便说一句,国家不一定是字符串数组。它可以是一组复杂的 JS 对象。但是,您必须扩展您的data-bind="options: ..."
绑定optionsText
并optionsValue
指明您的对象的哪个属性是标签和值。在这里查看更多详细信息。
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']);
}
});
}