到目前为止,我已经使用了淘汰赛几个月,但我已经成功了。
到现在为止,我遇到了问题(让我们这样称呼)我无法更新SELECT标记中的选项,因为从服务器检索de数据的ajax方法位于{{1所以基本上我的SELECT标签从第一个时刻起就充满了数据,但是如果想改变"选项"在第二个列表中根据我在第一个列表中选择的内容?
让我为你分解,所以你看看它是怎么回事......
- 我的观点概述[HTML5 + JQM] -
$(document).ready()
- 我的viewModel概述 -
<div data-role = "content>
<label for = "liquorList"> Liquors Categories </label>
<select data-bind= "options:liqList,
optionsText: 'descitem',
optionsValue: 'iditem',
optionsCaption: 'Choose..',
value: selectedCategory" name="liquorList"></select>
<label for = "productList"> Especific Products </label>
<select data-bind= "options: productList,
optionsText: 'descitem',
optionsValue: 'iditem',
optionsCaption: 'Choose..',
value: selectedProduct" name="productsList"></select>
</div>
我已经在sessionStorage上设置了iditem的任何选项更改值($(document).ready(function(){
/* This is inside a function and retrieves
the data to fill the liquorList */
$.ajax({
type : 'GET',
url : url
//some code to complete it
});
/* Here lies my doubt */
/* Url is being built up based
upon the selectedOption's iditem in the liquorList */
$.ajax({
type : 'GET',
url : url + iditem,
//some code to complete it
});
)并且它有效。然后,我应该从sessionStorage获取此IDITEM以基于该值完成我的第二个URL。但我甚至不知道在哪个事件或哪里设置选项来检索它。
For Instance:
如果 - &gt;第一个清单内有&#34;朗姆酒,伏特加,葡萄酒&#34; 如果选择&#34; Rum&#34;从我使用的网络服务中获得的JSON应该只有与Rum相关的数据......&#34; Appleton,Bacardi,Malibu&#34; ,这意味着它会根据您首先选择的内容而改变。
有没有特别的活动呢? onblur,onchange所有这些东西都可以获得第一个列表的值,但第二个列表不会自动更改。我该怎么办 ?希望你能帮助同事。
/ ************* ************* / 编辑:07/06/2014
Sir @Kristof评论后,我的代码已经变成了这个...
onchange = "saveIdItem()"
答案 0 :(得分:1)
如果我理解正确,您应该能够订阅selectedCategory observable。
那样当它的值发生变化(也就是选择变化)时,你可以对json调用做出反应并更改你的productList observableArray。
您的代码可能如下所示:
myViewModel.selectedCategory.subscribe(function(newValue) {
$.ajax({
type : 'GET',
url : url
//some code to complete it
});
});