我正在使用以下代码,它始终会提取availableTags中定义的硬编码数据。如果我从C#WebApi动态加载数据,它仍然会拾取旧数据,即ActionScript和AppleScript。

如您所见,我正在打印``前''和``后''值,并且它们都正常工作,即我可以看到它将新数据分配给availableTags,但自动完成功能仍然适用于旧数据。我可以在availableTags中定义多少个项目?因为动态地从我的代码中获取了504个项目,所以这可能是问题吗?

我究竟做错了什么?

<input id="tags">

<script>
var availableTags =
[
    "ActionScript",
    "AppleScript"
];

$("#tags").autocomplete
({
    source: availableTags
});

$.getJSON("MyController/GetAllTags")
    .done(function (data)
    {
        alert("Before="+ availableTags);
        availableTags = data;
        alert("After="+ availableTags);
    });
</script>

最佳答案

尝试这个

<input id="tags">

<script>
var availableTags =
[
    "ActionScript",
    "AppleScript"
];

$("#tags").autocomplete
({
    source: availableTags
});

$.getJSON("MyController/GetAllTags")
    .done(function (data)
    {
        $("#tag").autocomplete('option', 'source', data)
    });
</script>


编辑1:更新代码

07-26 00:21