首页 > 解决方案 > 触发日期更改时未触发 ng-change 事件

问题描述

嗨,我是 Angular js 的新手。目前我的情况是,当我更改日期时,它应该触发打开模式的方法。但在我的情况下,我使用 ng-change 事件来调用方法,使用此方法不会在日期更改时触发调用。但是如果我在单击日期字段时使用 ng-click 方法将打开模式,这不应该在日期更改时发生,只有它应该打开模式。那我怎么能做到这一点?

HTML 代码:

<div class="input-wrap-container row">
  <field ng-model="requisition.validityStartDate" class="col-xs-4"
         editable="true"
         ng-change ="validityStartDate(requisition.validityStartDate)">
  </field>`
</div>

这是我的 JS 代码:

var validityStartDate = function (validityStartDate) {
    newValueStartDate = validityStartDate;
    debugger
    if (newValueStartDate != null && newValueStartDate != oldValueStartDate) {

        var apprModalId = "changeValidityDates";

        $element.find('#'+ apprModalId).modal("show");
        oldValueStartDate = newValueStartDate;
        newValueStartDate = null;

        $element.find('#'+ apprModalId).on('shown.bs.modal', function () {
            console.log("submit-req error modal shown");

        //scope.buttonActionReqError = response;
        });   
    }
};

标签: javascripthtmlangularjstypescript

解决方案


当用户更改输入时评估给定的表达式。angularjs文档

由于您没有使用输入字段,ngChange因此不会触发。

更改<field><input>

更新以匹配评论

onKeyup

我想 ng-keyup="expression"如果你愿意,你可以做,或者 keyDown 或其他任何由按键触发的东西。


推荐阅读