通过AngularJS中的属性传递日期/时刻对象
我有一个通过AngularJS中的属性传递日期/时刻对象,angularjs,momentjs,Angularjs,Momentjs,我有一个指令,我正试图通过属性传递日期/时刻对象。我这样传递它:(我知道,我可以创建隔离的作用域并绑定它,但事实并非如此) 实际上,您可以使用更可靠的$parse从父范围中提取值 angular.module('app') .directive('formFieldDirective', function($parse) { return { restrict: 'A', require: '^ngModel', link: function(sc
指令
,我正试图通过属性
传递日期/时刻对象。我这样传递它:(我知道,我可以创建隔离的作用域并绑定它,但事实并非如此)
实际上,您可以使用更可靠的
$parse
从父范围中提取值
angular.module('app')
.directive('formFieldDirective', function($parse) {
return {
restrict: 'A',
require: '^ngModel',
link: function(scope, iElement, iAttrs, ngModelCtrl) {
ngModelCtrl.$validators.fieldDate = function() {
if (angular.isUndefined(iAttrs.fieldDate)) {
return true;
}
console.log(($parse(iAttrs.fieldDate)(scope)).format());
};
}
};
});
请显示指令代码……类似于此,但我想我已经解决了。请用代码更新您的问题……如果它是静态传递的,会怎么样?我发现它是以ISO格式传递的,在我看来,仅仅检查它并进行相应的处理就足够了。例如,静态地
field date=“03.04.2017”
。i、 当前的问题不包括它。但我需要通过属性传递日期,以便与分配给字段的ngModel
进行比较。这样我就不需要为指令创建独立的作用域。您使用相同的策略…$parse
如果我将日期静态地作为属性传递,而不是作为变量传递,那么在您的示例中,我认为我遇到了错误。
angular.module('app', [])
.controller('AppCtrl', function($scope) {
$scope.fieldDateModel = moment(); // new Date()
});
angular.module('app')
.directive('formFieldDirective', function() {
return {
restrict: 'A',
require: '^ngModel',
link: function(scope, iElement, iAttrs, ngModelCtrl) {
ngModelCtrl.$validators.fieldDate = function() {
if (angular.isUndefined(iAttrs.fieldDate)) {
return true;
}
console.log(iAttrs.fieldDate);
};
}
};
});
angular.module('app')
.directive('formFieldDirective', function($parse) {
return {
restrict: 'A',
require: '^ngModel',
link: function(scope, iElement, iAttrs, ngModelCtrl) {
ngModelCtrl.$validators.fieldDate = function() {
if (angular.isUndefined(iAttrs.fieldDate)) {
return true;
}
console.log(($parse(iAttrs.fieldDate)(scope)).format());
};
}
};
});