我有一个指令,它可以正常工作,当我输入某些内容时,search()
指令中的作用域函数会触发并$scope.query
使用输入文本进行设置。
这是指令模板
<div class="container">
<div class="system-filter-header">
<div class="no-gutter">
<div class="system-search-wrapper search-wrapper-width">
<i ng-click="search($evt)" class="fa fa-search"></i>
<input type="text" ng-keyup=search($evt) class="search pull-left suggesstions-styles"
ng-model="query" ng-attr-placeholder="Search...">
</div>
</div>
</div>
</div>
这是触发的范围函数
$scope.search = function() {
console.log($scope.query.length)
}
但是当我使用ng-if="true"
模板的第一行(true
仅用于泛化,我想在内部进行不同的条件检查ng-if
)时,
<div class="container" ng-if="true">
仍然search
会被触发,但console.log
总是给出 0 并且它似乎没有更新$scope.query
值,因为它在$scope.query = ''
整个输入过程中都保持不变。
编辑
这是一个具有几乎相似行为的示例代码笔。问题出在searchBox
指令上,我已添加ng-if=true
到模板中,但搜索不起作用。当我删除ng-if
搜索工作正常。
这有什么原因吗?