【问题标题】:ng-change is not working initially on page loading but after refreshing page it works fineng-change 最初在页面加载时不起作用,但在刷新页面后它工作正常
【发布时间】:2018-07-03 07:16:02
【问题描述】:

这是我遇到问题的代码:

<input type="text" data-ng-model="TODATE" data-ng-change="setTdate()" name="date" class="form-control datepicker" id="todate"  data-date-container="#cal"  data-provide="datepicker" data-date-format="mm-dd-yyyy" placeholder="mm-dd-yyyy"   /> 

控制器中的代码:

$scope.setTdate = setTdate;
    function setTdate() 
   { 
     alert("working"); 
   }

我使用输入类型作为引导日期选择器的文本,并希望在选择日期时调用一个函数。页面最初加载时 ng-change 事件不起作用,但当我刷新页面时它工作正常。调试时没有警告或错误。

【问题讨论】:

  • 我在您的代码中没有看到任何ng-change 的声明,它是动态添加的吗?如果是这样,您可以在完成的地方添加代码吗?如果没有,您希望ng-change 会在哪里触发?
  • @kaddath 我已编辑代码,请查看
  • @anupriyagupta 如果你能生产一个拔毛器会更好
  • @prashantPimpale 创建了这个 plunker 请看plnkr.co/edit/MZCciHSyfPVnfiQpzRDZ?p=preview

标签: angularjs angularjs-ng-change


【解决方案1】:

看看。我认为它在不刷新页面的情况下工作正常。

<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="myCtrl">
  <input type="date" ng-change="myFunc()" ng-model="myValue" />
  <p>ng-change triggered {{count}} times.</p>
</div>

<script>
  angular.module('myApp', [])
    .controller('myCtrl', ['$scope', function($scope) {
      $scope.count = 0;
      $scope.myFunc = function() {
        $scope.count++;
      };
    }]);
</script>
</body>
</html>

【讨论】:

  • 谢谢.. 但我正在尝试调用 ng-change 从 ui-datepicker 中选择日期。
  • 我已经更新了 type=date 你可以检查它,你应该在询问时提及
  • 日期类型工作正常,但由于它是一个 HTML5 控件,它在 IE 中不起作用,因此类型被选择为“文本”并使用引导日期选择器。
  • 我明白。首先函数声明是错误的 $scope.abc=function(){ } 而不是 $scope.abc=function abc(){ }
  • 选择日期值后的第二秒,如果您更改输入字段中字符串的长度,ng-change 将起作用
猜你喜欢
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多