我在输入上使用(focus)=“ showSearchList = true”显示文本输入的自动完成下拉列表,并使用(blur)=“ showSearchList = false”再次隐藏它。
我的问题是,如果单击下拉列表中的一个结果,我想触发另一种方法,但是通过单击下拉列表中的元素,我会触发输入的模糊方法,因此不会单击下拉列表结果。使这项工作最好的方法是什么?我使用的是ES6,而不是Typescript,并且正努力在Google上找到任何内容。
这是我到目前为止拥有的模板:
<div id="searchContainer">
<input [(ngModel)]="search"
(ngModelChange)="filterSearch()"
(focus)="showSearchList=true;"
(blur)="showSearchList=false"
type="text"
id="searchJobs"
placeholder=" Search"/>
<div *ngIf="showSearchList"
id="searchDropdown">
<p *ngFor="let result of filteredSearchResults; let index = index;"
(click)="addResultToResults(index); search='';">
{{result}}
</p>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我以为不是将模糊的showSearchList设置为false,而是可以调用一个方法来检查哪个元素具有焦点,并根据该方法隐藏下拉列表,或者运行我的addResultToResults方法然后隐藏下拉列表,但是我不知道如何检查哪个元素在angular2中具有焦点。
希望对此有一些反馈!
在Sublime Text 3中安装软件包时,无论如何我可以从列表中勾选我想要的所有软件包,然后一次性安装它们吗?或者我是否必须为我要安装的每个软件包单击首选项>软件包控制>安装软件包?Notepad ++例如有一个很好的列表,带有复选框......
我已将包含视图的数据库从一台机器移动到另一台机器,现在视图已损坏。我知道我需要在新机器上重新创建旧用户才能修复它,但我的问题是:
如何找出创建视图的旧用户的用户名?我不能再使用旧机器了。
谢谢。
我有一个验证函数,如果验证通过,我想返回 true,如果验证失败,我想返回一个错误数组。但是,当我检查函数是否返回 true 时,即使返回值是数组,它也会返回 true。为什么是这样?作为我的意思的另一个例子:
$array = ['test' => 'test'];
if ($array == true)
{
echo 'true';
}
Run Code Online (Sandbox Code Playgroud)
我也用字符串尝试了同样的方法:
$string = 'string';
if ($string == true)
{
echo 'true';
}
Run Code Online (Sandbox Code Playgroud)
并且两者都呼应真实。
为什么是这样?如果我们可以做到这一点,那么为什么我们需要 isset() 函数?
Netbeans 不断向我发出“嵌套块太多”的烦人通知,并建议我引入新功能,但以下做法真的很糟糕吗?
$sql = 'SELECT * FROM table';
$sth = $dbh->prepare($sql);
if ($sth->execute())
{
if ($sth->rowCount())
{
while ($row = $sth->fetch())
{
// Read the database here
}
}
else
{
// Handle no result case here
}
}
else
{
// Catch query failure here - Is this bit necessary if I'm confident the query is OK?
}
Run Code Online (Sandbox Code Playgroud)
所以看来每次我编写 SQL 查询时我都已经达到了 Netbeans 推荐的嵌套块限制 - 我可以安全地使这个更灵活吗?我知道这只是一个编码“提示”,但我想检查一下我没有做任何非常愚蠢的事情:)