gpt4 book ai didi

angularjs - 为什么格式化程序不适用于隔离范围?

转载 作者:行者123 更新时间:2023-12-02 23:37:36 26 4
gpt4 key购买 nike

为什么格式化程序不适用于隔离范围?这是 Angular 错误还是我做错了什么?

这包含隔离范围并且不起作用:http://jsfiddle.net/YbdXQ/56/

 restrict: 'A',
scope:{},
link: function(scope, elm, attrs, ctrl) {
ctrl.$formatters.unshift(function(modelValue) {
console.log("In formatters" + modelValue);
return $filter('date')(modelValue);
});

这不包含独立的并且范围工作正常:http://jsfiddle.net/YbdXQ/57/

 restrict: 'A',
link: function(scope, elm, attrs, ctrl) {
ctrl.$formatters.unshift(function(modelValue) {
console.log("In formatters" + modelValue);
return $filter('date')(modelValue);
});

最佳答案

这与格式化程序没有任何关系,而是 ngModel 不再有权访问您尝试传递它的值。当您创建隔离范围时,myDate 不再可用于 ngModel 指令(因为您创建了一个新范围(隔离范围))上面没有 myDate)。作为证明,这里有一个 not-so-useful example根据传入 ngModel 属性的内容设置范围内的 myDate:http://jsfiddle.net/YbdXQ/78/

angular/angular.js#1069 ,“一个指令的隔离范围隔离同一元素上的其他指令”,讨论了这个问题:

For example, notice how my custom directive is preventing ng-model from working

您可能还对 this StackOverflow question, "ngModel and component with isolated scope" 感兴趣.

关于angularjs - 为什么格式化程序不适用于隔离范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14495882/

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