我有以下将多个锚元素与“团队”类绑定为 x 可编辑的 select2 输入。每个 a.team 都有不同的数据源(传递给 Web 服务的 ID 不同,以便返回适用的团队列表),但不幸的是,一旦绑定了第一个 a.team,就会使用该数据源 URL对于页面上所有后续的 a.team 输入(因此,错误的团队列表绑定到每个后续的 x-editable select2 输入)。
是否可以“重置” select2 的 data 属性,以便它尊重每个 a.team 元素的每个数据源?还是有其他解决方案?
$('a.team').editable({
ajaxOptions: {
dataType: 'json',
type: 'POST'
},
emptytext: 'TBD',
placement: 'bottom',
success: function (response, newValue) {
return editableResponse(response, newValue);
},
select2: {
allowClear: true,
placeholder: 'Select a team',
width: '200px',
id: function (item) {
return item.id;
},
ajax: {
dataType: 'json',
results: function (data, page) {
return { results: data };
}
},
}
});
页面上有多个 a.team 锚点,如下所示:
<a href="#" class="ur-team label label-inverse" data-type="select2" data-pk="@match.Id" data-source="@Url.Action("GetTeams", "Teams", new { scheduleId = match.ScheduleId })" data-value="@match.AwayTeamId" data-text="@match.AwayTeam" data-name="away" data-title="Update away team" data-url="@Url.Action("UpdateTeam", "AdminMatches")">@match.AwayTeam</a>
注意:我已经验证只有第一个 x-editable select2 输入中的 ID 用于所有其他 select2 AJAX 调用。换句话说,这不是数据缓存问题(它是“一旦绑定,所有其他数据源引用都将被忽略”问题)。
更新:这是一个复制问题的快速而肮脏的小提琴:http: //jsfiddle.net/ovalsquare/k9b3d/8/。请注意,两者最终都绑定到 list2 而不是 list,然后是 list2。