我得到意想不到的结果与jQuery-TokenInput预填充数据集的变化。
我遵循Railscasts -令牌字段,并使用Railscasts -令牌字段更新了必要的代码。到最新的Rails版本。
处理令牌搜索查询的coffeescript代码是:
jQuery ->
$('#user_tracker_ids').tokenInput '/trackers.json'
prePopulate: $('#user_tracker_ids').data('load')
minChars: 3
hintText: "Type in name"
preventDuplicates : true
我的奇怪结果是:
-
案例1:[]最初病例(正确)
当令牌字段是空的,即没有预填充的数据,我输入任何no。对于令牌,我在服务器端操作中获得与令牌关联的ID,这是正确的。 -
案例2:[结束案例](正确)
当我删除之前输入的所有ID时,即我删除所有预填充的数据,我得到0
ID,这也是正确的。 -
情况3 : [失败情况下][问题]
当在令牌输入中已经有值,并且我更新它们时,例如添加更多令牌,删除一些现有令牌,我只获得在当前编辑会话中添加的令牌的ID。对query-tokenInput中预填充的数据所做的更改不会发送到服务器端操作。
我确定我在这里遗漏了一些基本设置,但我无法找到它并修复它。
如果你需要更多信息。要找到问题,请让我知道。
使用
$(elementId).tokenInput("",
{
prePopulate:JSON.parse(YourJsonFormatStringHere)
});
这是我的一个错误,而且确实是一个愚蠢的错误。prePopulate: $('#user_tracker_ids').data('load')
输入prePopulate
呼叫,发送的数据不完整。我只传递了对象的name字段,没有传递id字段。
因此,令牌输入能够正确显示预填充数据的名称,但是对它所做的任何更改都不会反映出来,正如我在上面的问题中提到的那样。