【发布时间】:2014-08-15 07:20:51
【问题描述】:
我正在尝试实现一个简单的指令,将格式化程序添加到<input type="date"> 字段。该指令如下所示:
myApp.directive("date-format", function (dateFilter) {
return {
restrict: "A",
require: "ngModel",
link: function (scope, element, attributes, ngModelController) {
ngModelController.$formatters.push(function (modelValue) {
return modelValue && new Date(modelValue);
});
}
};
});
在我将其名称更改为 mb-date-format 之前,它运行良好。我创建了一个 JS 小提琴:http://jsfiddle.net/HB7LU/4458/。它似乎可以与 aaa、bbb、ccc 等名称一起正常工作,但是当您将名称更改为 jjj、zzz、...时,它就会停止工作。
【问题讨论】:
-
尝试优先考虑你的指令;我不记得某些机制,但让它在
input指令之前或之后显式运行(例如priority: 10或priority: -10)。当多个指令具有相同的优先级(例如默认)时,Angular 似乎按字母顺序排列它们。 -
它绝对适用于例如
priority: 1,似乎0是默认优先级,input指令也具有0优先级。谢谢!
标签: angularjs angularjs-directive angular-ngmodel