Javascript 未在视图中更新ng模型输入

Javascript 未在视图中更新ng模型输入,javascript,html,angularjs,Javascript,Html,Angularjs,我在中有一个文本输入,用作搜索输入 在这个文本输入的右边,如果输入为空,我有一个搜索图标,如果输入中有文本,我有一个十字图标 <form action="javascript:void(0)" method="get" class="sidebar-form"> <div class="input-group"> <input type="text" ng-model="searchInput" id="sInput" class="form-co

我在
中有一个文本输入,用作搜索输入

在这个文本输入的右边,如果输入为空,我有一个搜索图标,如果输入中有文本,我有一个十字图标

<form action="javascript:void(0)" method="get" class="sidebar-form">
   <div class="input-group">
      <input type="text" ng-model="searchInput" id="sInput" class="form-control" 
             placeholder="{{isEnglish ? 'Search...' : 'Recherche...'}}" 
             ng-change="filterCartoList(searchInput)">

      <span class="input-group-btn">
         <button type='submit' name='search' id='search-btn' class="btn btn-flat">
            <span ng-if="searchInput.length == 0">
               <i class="fa fa-search"></i>
            </span>
            <span ng-if="searchInput.length > 0" ng-click="clearSearch(); filterCartoList('');">
               <i class="fa fa-times"></i>
            </span>
         </button>
   </div>
</form>
搜索已重置。但是输入文本中仍然包含文本

当我使用
console.log($scope.searchInput)
显示
searchInput
时,它是一个空字符串。但不知何故,在我看来,文本输入仍然具有相同的值

此外,如果我在页面中的某个位置显示
searchInput
,则在单击十字图标后,即使搜索已完全重置且控制台显示
searchInput
的空字符串,它也不会改变

所以我想,我正在展示一个副本或其他东西

你知道如何清除我的输入吗


编辑:我还尝试了
document.getElementById(“sInput”).innerHTML=“”用于
clearSearch()
函数和相同的问题。

实际上有一个javascript函数将为您解决此问题:

document.getElementById("myForm").reset();
因此,如果您将其添加到函数中(或者在onclick中使用,我知道这不再是一种好形式,但在某些情况下仍然有效)


这与您尝试清除所有输入的效果相同。

更改
searchInput
的值后执行
$scope.$apply()
操作时会发生什么情况?您的代码是否在指令或子控制器或类似的内容中?很可能,
searchInput
正在对真实的
searchInput
进行阴影处理,
clearSearch()
正在清除真实的
searchInput
,而不是阴影副本。@Agop:此表单位于角度材质的
内部@罗宾:
$scope.$apply()也会发生同样的情况
尝试添加点符号,类似于
$scope.myForm.searchInput
(而不仅仅是searchInput)。我猜你是在一个孩子的范围内,并没有意识到这一点。我在这里建立了一个小例子,效果很好-。您是通过指令还是什么传递searchInput?我也更喜欢
ng show
而不是
ng if
。我发现有时候如果
把数据绑定搞砸了,就会
ng。可能不是这里的实际问题,但值得一试。如果谁能给我一个借口,解释为什么我很乐意编辑我的答案。请不要-1而不解释原因。>_它似乎起作用了。不知道为什么其他的解决方案没有。谢谢问题是,“”仍然被认为是一个字符串,只是一个空字符串。所以它仍然在检测一个值。:)是的,但它也应该在视图中更新为空的。除了使用innerHTML的纯js也不起作用之外,无论如何,我不会在thys>上浪费更多的时间,但是视图searchInput仍然没有更新,因为在我键入并删除它之前,图标不会重置。。但我现在要用这个技巧
document.getElementById("myForm").reset();
$scope.clearSearch = function () {
    document.getElementById("myForm").reset();
};