Javascript ObservableArray可在淘汰JS中选择选项
我想通过knockout js将array转换为select选项,我知道这种情况下有3种方法,但这些方法都不能完全满足我的需要,我想要的是:Javascript ObservableArray可在淘汰JS中选择选项,javascript,knockout.js,Javascript,Knockout.js,我想通过knockout js将array转换为select选项,我知道这种情况下有3种方法,但这些方法都不能完全满足我的需要,我想要的是: 设置默认选项选择一个选项 获取选定值 设置选项的属性 每个方法都有自己的问题,但最后一个方法有默认选项,可以获得选定的值,但不能设置attr,知道吗 方法1: 错误: 未捕获错误:绑定“值”不能用于虚拟 元素 状态:不工作 函数myfunc(){ var self=这个; 自我估计=ko.observearray([]); self.selectedVa
选择一个选项
attr
,知道吗
方法1:
错误:
未捕获错误:绑定“值”不能用于虚拟
元素
状态:不工作
函数myfunc(){
var self=这个;
自我估计=ko.observearray([]);
self.selectedValue=ko.observable();
var obj=[{
方法标题:“胡说八道”,
价格:“1000”
},
{
方法标题:“胡说八道2”,
价格:“2000”
}
];
自我评估(obj);
self.selectedValue.subscribe(函数(值)){
警报(值);
});
}
ko.applyBindings(新的myfunc())代码>
选择一个选项
您只需对第三种方法稍加修改即可
从淘汰官方文档中,您可以使用optionsAfterRender参数。我已经修改了你的代码。看看是否有帮助
函数myfunc(){
var self=这个;
自我估计=ko.observearray([]);
self.selectedValue=ko.observable();
var obj=[{
方法标题:“胡说八道”,
价格:“1000”,
href:“href 1”,
标题:“转到href 1”
},
{
方法标题:“胡说八道2”,
价格:“2000”,
href:“href 2”,
标题:“转到href 2”
}
];
self.setoptionatr=函数(选项,项){
如果(项目)
{
applybindingstoode(选项,{attr:{href:item.href,title:item.title},item);
}
}
自我评估(obj);
self.selectedValue.subscribe(函数(值)){
警报(值);
});
}
ko.applyBindings(新的myfunc())代码>
您只需对第三种方法稍加修改即可
从淘汰官方文档中,您可以使用optionsAfterRender参数。我已经修改了你的代码。看看是否有帮助
函数myfunc(){
var self=这个;
自我估计=ko.observearray([]);
self.selectedValue=ko.observable();
var obj=[{
方法标题:“胡说八道”,
价格:“1000”,
href:“href 1”,
标题:“转到href 1”
},
{
方法标题:“胡说八道2”,
价格:“2000”,
href:“href 2”,
标题:“转到href 2”
}
];
self.setoptionatr=函数(选项,项){
如果(项目)
{
applybindingstoode(选项,{attr:{href:item.href,title:item.title},item);
}
}
自我评估(obj);
self.selectedValue.subscribe(函数(值)){
警报(值);
});
}
ko.applyBindings(新的myfunc())代码>
您的第一种方法最有希望,因此我已经纠正了这一点。您不需要在foreach
循环中使用值
绑定。它必须在
中使用,并且工作正常
函数myfunc(){
var self=这个;
自我估计=ko.observearray([]);
self.selectedValue=ko.observable();
var obj=[{
方法标题:“胡说八道”,
价格:“1000”
},
{
方法标题:“胡说八道2”,
价格:“2000”
}
];
自我评估(obj);
self.selectedValue.subscribe(函数(值)){
console.log(值);
});
}
ko.applyBindings(新的myfunc())代码>
选择一个选项
您的第一种方法最有希望,因此我已经纠正了这一点。您不需要在foreach
循环中使用值
绑定。它必须在
中使用,并且工作正常
函数myfunc(){
var self=这个;
自我估计=ko.observearray([]);
self.selectedValue=ko.observable();
var obj=[{
方法标题:“胡说八道”,
价格:“1000”
},
{
方法标题:“胡说八道2”,
价格:“2000”
}
];
自我评估(obj);
self.selectedValue.subscribe(函数(值)){
console.log(值);
});
}
ko.applyBindings(新的myfunc())代码>
选择一个选项
请注意,在Knockout看到注释之前,浏览器可能会从元素中删除注释。例如IE 8就是这样做的。请注意,在Knockout看到注释之前,浏览器可能会从select
元素中删除注释。例如IE8就是这样做的。