ng-focus或ng-click在Angular中无法正常工作

时间:2017-04-06 10:54:52

标签: javascript jquery angularjs

我有一个文本输入字段和一个嵌入其中的日期选择器。问题是当我们关注甚至点击输入字段时

日期选择器未显示。

但是如果你在控制台中放置一个调试器和调试,它会显示输入字段被聚焦或点击的时间。

   <div class="row">
                <input id="field" placeholder="Choose Date" class="span-12" ng-model="vm.date" ng-blur="vm.onSaveTime()" ng-focus="vm.showDatePicker()">
   </div>

这是代码

vm.showDatePicker = function(){
    debugger;
    var options = {
        format:"YYYY-MM-DD"
    };
    $('#field').datepicker(options);
}

日期选择器最初不会在页面加载时显示,如果您没有在控制台中调试,或者您没有单击面板中的其他字段,然后单击它。

为什么会这样?

1 个答案:

答案 0 :(得分:0)

可能对你有所帮助

<div id="wrapper" ng-app="myApp">
<p>{{datePicker || "00/00/0000"}}</p>
<input type="text" ng-model="datePicker" datepicker />
</div>

var myApp = angular.module('myApp', []);

myApp.directive("datepicker", function () {
return {
restrict: "A",
require: "ngModel",
link: function (scope, elem, attrs, ngModelCtrl) {
  var updateModel = function (dateText) {
    scope.$apply(function () {
      ngModelCtrl.$setViewValue(dateText);
    });
  };
  var options = {
    dateFormat: "dd/mm/yy",
    onSelect: function (dateText) {
      updateModel(dateText);
    }
  };
  elem.datepicker(options);
}
}
});

https://codepen.io/anon/pen/BWeWVp