当一个对象有一个可能未定义的 id 且您想要从这些对象的数组中选择所有现有 id 时,为什么以下代码会产生 Typescript 错误,指出 y.id 可能未定义?
.filter(x => x.id !== undefined).map(y => y.id)
Run Code Online (Sandbox Code Playgroud) 我有一个Select2工作正常附加到选择列表,但当有人输入一个新项目,我重新绑定选择列表并尝试以编程方式选择新项目,它拒绝显示.
还有很多其他帖子,但他们的解决方案对我不起作用.
.select2("val", value).什么也没做..select2("data", value).什么也没做.不确定这应该是多么不同. InitSelection选项设置值.这会导致以下错误消息:Uncaught Error: Option 'initSelection' is not allowed for Select2 when attached to a select element.在将新选项添加到数据库后的Ajax成功函数中,我有以下Javascript:
BindDishes(RestaurantID); //rebinds the select list successfully
$('#hidDishID').val = data.DishID; //populates a hidden field
var arr = '[{id: "' + data.DishID + '", text: "' + data.DishName + '"}]';
$("#dd").select2("data", arr);
Run Code Online (Sandbox Code Playgroud)
所以在这个最新的迭代中,我试图根据另一个建议的解决方案提供一个包含选择列表项中的id和text的数组,但仍然没有发生任何事情.我究竟做错了什么?将Select2与选择列表一起使用时,这是不可能的?
编辑:我在MVC中有以下行创建选择列表:
@Html.DropDownGroupListFor(m => m.DishID, Model.GroupedSelectList, "Select a dish", new { id="dd",style="width:470px;" })
Run Code Online (Sandbox Code Playgroud)
这必须通过绑定到模型中的DishID来引起问题,该模型在来自服务器时最初是空白的.DropDownGroupListFor只是一个HTML助手,它允许在Select中使用OptionGroups,但它必须是一个有问题的绑定.这里最好的方法是什么,以不同的方式绑定或以某种方式更新模型的DishID,不确定最佳实践?