ng-change事件未在bootstrap模式中为文本输入触发

时间:2014-02-20 14:21:13

标签: angularjs twitter-bootstrap textbox

我有点被困在这里。我有一个应用程序使用bootstrap模式与几个文本框,其中包含来自服务器的值。当我第一次打开模态并从文本框中删除项目时更改事件触发。清除所有字段后,我关闭了模态。当我再次打开模态时,它会填充新值,但是当我从文本框中删除项目时,不会触发ng-change事件。

但是在这里我发现了一个更奇怪的事情,只有在文本框中有一个项目时才会出现上述问题。

这是我的HTML代码:

<tr>
  <td>
    <input only-numeric class="floatLeft" name="scoreSample" type="text" ng-model="scoreSample" id="scoreSample" ng-change="sampleMethod()" ng-model-onblur>
  </td>
  <td>
    <input only-numeric class=" floatLeft" name="errorSample" type="text" ng-model="errorSample" id="errorSample" ng-change="sampleMethod()" ng-model-onblur>
  </td>
</tr>

AngularJS代码:

$scope.sampleMethod = function () {
  alert("Coming here");
}

提前致谢。

1 个答案:

答案 0 :(得分:1)

发生这种情况的可能原因列在文档中:


仅当输入值的更改导致将新值提交给模型时,才会评估ngChange表达式。

不会评估:

如果从$ parsers转换管道返回的值没有改变

如果输入继续无效,因为模型将保持为空

如果以编程方式更改模型,而不是更改输入值 注意,该指令要求存在ngModel。


你检查过这些东西吗?除此之外我还认为你应该发布整个视图和控制器,因为很难在你发布的代码片段中找到错误。