【发布时间】:2019-04-05 02:20:32
【问题描述】:
我在使用 Angular 提及库时遇到问题。
这是我的打字稿代码。
items: Object[] = ["jay","roy","gini","rock","joy","kiya"];
我在我的component.html file 中使用这个定义的名为items 的数组
<input type="text" id="cname" name="cname" placeholder="Type Here.." [mention]="items">
所以它正在创建一个文本框,并在我输入任何用户名时给出建议。
假设我输入@j,那么它会建议所有以名称j开头的名称,输入后将输入带有@符号的文本框。所以基本上它提供了从数组中自动搜索的功能,为此,我已将 mention 库导入到我的 Angular7 应用程序中。
我正在设计一个项目,其中所有用户都来自 Web 服务。所以我需要将这些用户存储到 items 命名数组中。
JSON格式如下。
[
{
"attributes": {
"User": "jay"
}
},
{
"attributes": {
"User": "roy"
}
},
{
"attributes":{
"User": "kiya"
}
},
{
"attributes":{
"User": "gini"
}
},
{
"attributes": {
"User": "rock"
}
},
{
"attributes": {
"User": "joy"
}
}
]
以上 JSON 数据来自网络服务器,我将其存储到变量中。所以我想将它存储到上面名为items 的数组中,以便在我的文本框中输入它可以给出真实数据的自动建议。
我试过这个东西,但是在输入文本框的时候,它没有给出任何建议。
【问题讨论】:
-
您已将名为
items的变量定义为Object[],表示对象数组。然后将此变量初始化为值["jay","roy","gini","rock","joy","kiya"];,它是一个字符串数组(string[])。这没有意义 -
"我试过这个东西" ...你试过什么?我看不到将 json 从 Web 服务映射到字符串 [] 的逻辑。
-
@RyanE。我从服务器获取的用户,我使用服务调用将其存储在一个变量中,然后我用该变量映射了项目,但是通过这种方法,我在输入时无法获得建议。这就是我尝试过的。
-
我留下了答案。如果这没有帮助,您可以用您尝试过的内容做出回应吗?可能 Angular 没有检测到对象数组的变化,因为 Angular 会查看引用,如果引用没有改变,那么它不会将更新后的数组发送到指令。
-
@JayeshVyas 尝试像我在回答中所说的那样使用 mentionConfig。
标签: angular typescript angular7