Javascript 淘汰赛js+;在我设置后,你正在重置我的可观察值
所以我正在构建这个图表构建ui。您可以从数据库中选择字段来构建图形。这些图有一个刷新间隔下拉列表 在我尝试从保存的“视图”加载值之前,所有操作都很正常 当我向RefreshInterval变量添加subscribe时,可以看到该值被设置 但它立即被重置为我的选项数组的0'd索引 [html]Javascript 淘汰赛js+;在我设置后,你正在重置我的可观察值,javascript,knockout.js,jquery-chosen,Javascript,Knockout.js,Jquery Chosen,所以我正在构建这个图表构建ui。您可以从数据库中选择字段来构建图形。这些图有一个刷新间隔下拉列表 在我尝试从保存的“视图”加载值之前,所有操作都很正常 当我向RefreshInterval变量添加subscribe时,可以看到该值被设置 但它立即被重置为我的选项数组的0'd索引 [html] <div class="wrapper wrapper-content" id="charts"> <select id="interval" data-bind="options:
<div class="wrapper wrapper-content" id="charts">
<select id="interval" data-bind="options: RefreshIntervals,
optionsText: 'Value',
value: RefreshInterval,
chosen: {
disable_search_threshold: 0,
width:'175px',
no_results_text: 'No results!',
placeholder_text_single: 'Select an interval',
search_contains: true,
}">
</select>
</div>
我这里有一把小提琴:
我有3个下拉框需要填充。
我希望值是实际的元素,而不是一个值字段,因为选项列表可能会更改,所以我需要将它与选项列表中的实际对象关联起来
你知道我如何解决这个问题吗?没有正确生成
上的value属性,你知道吗
需要将选项Value:“Value”
添加到绑定中
基本上,敲除有一个限制,即不能将选定值绑定到包装对象
由于此限制,以编程方式设置所需选项的唯一方法是:
vm.RefreshInterval("10 seconds");
计算出的值当然会返回字符串值,而不是整个对象。
然后,您可以简单地执行此操作以获取对象。(或者使用下划线或lodash使代码看起来更优雅)
this.RefreshInterval.subscribe(函数(newValue)){
var obj=null;
对于(var i=0;iI)我试图将其设置为10秒。作为小提琴的底线。对我来说似乎没有发生。它永远不会发生。如果我将其设置为“10秒”,它会正确地显示在选择中,但可观察到的不是它需要的元素,而是一个字符串。啊,我明白了,很抱歉,错过了,更新了答案和小提琴。
vm.RefreshInterval("10 seconds");
this.RefreshInterval.subscribe(function(newValue){
var obj = null;
for(var i=0; i<self.RefreshIntervals().length; i++) {
var interval = self.RefreshIntervals()[i];
if(interval.Value === newValue) {
obj = interval;
break;
}
}
console.log(obj);
);