我正在创建简单的ui-datetime指令.它将javascript Date对象拆分为_date,_hours和_minutes部分._date使用jquery ui datepicker,_hours和_minutes - 数字输入.
angular.module("ExperimentsModule", [])
.directive("uiDatetime", function () {
return {
restrict: 'EA',
replace: true,
template: '<div class="ui-datetime">' +
'<input type="text" ng-model="_date" class="date">' +
'<input type="number" ng-model="_hours" min="0" max="23" class="hours">' +
'<input type="number" ng-model="_minutes" min="0" max="59" class="minutes">' +
'<br />Child datetime1: {{datetime1}}' +
'</div>',
require: 'ngModel',
scope: true,
link: function (scope, element, attrs, ngModelCtrl) {
var elDate = element.find('input.date');
ngModelCtrl.$render = function () {
var date = new Date(ngModelCtrl.$viewValue);
var fillNull = function (num) {
if (num …Run Code Online (Sandbox Code Playgroud) 在AngularJS范围内.$ apply()在每个事件处理程序上调用(输入指令的keydown /输入事件,select指令的更改事件等)和其他一些情况.
见小例子.似乎在每个keydown上重新计算并重新绘制ngRepeat,尽管在另一个范围内发生了更改.
了解这种决定的理由很有意思.
angularjs ×2