observable()不更新按预期选择所选项

时间:2013-03-14 17:31:30

标签: knockout.js

Html:

<select id="Catagories_CategoryId" data-bind="options: CategoryServiceTypes, 
    optionsText: 'Name',                        
    optionsCaption: 'Please select a Category...',                                        
    value: SelectedCategoryType">
</select>

在下面的代码示例中,我刚刚删除了网格中的项目,因此我通过LoadServiceTypesFromSvc()重新填充网格

obj.SelectedCategoryTypeHolder(obj.SelectedCategoryType()); //copy the old selected object
pager.LoadServiceTypesFromSvc(); //repop
ko.utils.arrayForEach(obj.CategoryServiceTypes(), function(data) {                                                        
    if (data.CategoryId() == obj.SelectedCategoryTypeHolder().CategoryId()) {
        obj.SelectedCategoryType(data);
        alert('selected ' + obj.SelectedCategoryType().Name()); //shows the name of the item I'm aiming for
    }
});

LoadServiceTypesFromSvc()也重新填充了选择权。我想将选择的选择值设置为数据刷新前的值。

即使警报确认obj.SelectedCategoryType()已设置为我想要设置的值 - 选择本身仍保持不变,仍显示默认的“请选择...”第一项。

我错过了什么?

非常感谢

1 个答案:

答案 0 :(得分:1)

对.done函数中的LoadServiceTypesFromSvc()返回的每个项运行ko.utils.arrayForEach(...)块