gpt4 book ai didi

javascript - Angular Directive(指令)字段不需要括号

转载 作者:行者123 更新时间:2023-11-28 18:55:43 26 4
gpt4 key购买 nike

我正在使用 UI Bootstrap 的日期选择器函数,并且我想获取传递到属性中的值之一。

// JS
$scope.myMaxDate = new Date();

<!-- HTML -->
<input datepicker-popup="MM/dd/yyyy" max-date="myMaxDate" />

我不明白为什么在这种情况下 max-date attr 采用字符串而不是像 {{myMaxDate}} 这样的表达式。它如何获得实际值?

此外,我正在使用装饰器来更改此指令中的一些数据,并希望访问此属性,但我得到的只是字符串 myMaxDate

    $provide.decorator("datepickerPopupDirective", ["$delegate", function($delegate) {
// get references to the directive and old link function
var directive = $delegate[0];
var link = directive.link;

// create a new link function using compile
directive.compile = function() {
// the new link function we want to return
return function(scope, element, attrs, ngModelCtrl) {
console.log(attrs.maxDate); // 'myMaxDate'

// invoke the old link function
link.apply(this, arguments);
};
};

最佳答案

回答您关于datepicker-popup如何的问题指令查找 max-date 的实际值属性,它很可能使用 $eval scope的方法.

因此,在您的代码中,要查看实际值,请使用:

 console.log(scope.$eval(attrs.maxDate));

这也是该指令不需要双花括号的原因。事实上双大括号会引起问题,因为它会转换你的 myMaxDate对象到字符串并因此丢失 Date对象的方法。

有关$eval的更多信息方法看AngularJS Scope API

关于javascript - Angular Directive(指令)字段不需要括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33663058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com