在 angular js 中使用 link 属性缩小安全指令
Minification safe directive with link attribute in angular js
在带有 HTML 输入 here.
的 ng-model 中格式化日期的指令非常方便
angular.module('app', []).controller('Ctrl', function($scope){
$scope.firstDate = new Date();
$scope.secondDate = "2014-02-20";
}).directive('date', function (dateFilter) {
return {
require:'ngModel',
link:function (scope, elm, attrs, ctrl) {
var dateFormat = attrs['date'] || 'yyyy-MM-dd';
ctrl.$formatters.unshift(function (modelValue) {
return dateFilter(modelValue, dateFormat);
});
}
};
});
我试图在我的项目中使用它,但问题是当 javascript 文件被缩小时它无法工作。它记录错误 [$injector:unpr] ...../$injector/unpr?p0=eProvider%20%3C-%20e%20%3C-%20dateDirective。
我尝试使用 this 缩小
请指导我如何缩小此指令。
发生这种情况是因为您没有使用注入 a.e $inject
.
.controller('Ctrl', ['$scope',function($scope){/* ... */}]);
.directive('date', ['dateFilter', function (dateFilter) {/* ... */}]);
因此您的指令(和控制器)将如下所示:
angular.module('app', []).controller('Ctrl', ['$scope',function($scope){
$scope.firstDate = new Date();
$scope.secondDate = "2014-02-20";
}]).directive('date', ['dateFilter', function (dateFilter) {
return {
require:'ngModel',
link:function (scope, elm, attrs, ctrl) {
var dateFormat = attrs['date'] || 'yyyy-MM-dd';
ctrl.$formatters.unshift(function (modelValue) {
return dateFilter(modelValue, dateFormat);
});
}
};
}]);
在带有 HTML 输入 here.
的 ng-model 中格式化日期的指令非常方便angular.module('app', []).controller('Ctrl', function($scope){
$scope.firstDate = new Date();
$scope.secondDate = "2014-02-20";
}).directive('date', function (dateFilter) {
return {
require:'ngModel',
link:function (scope, elm, attrs, ctrl) {
var dateFormat = attrs['date'] || 'yyyy-MM-dd';
ctrl.$formatters.unshift(function (modelValue) {
return dateFilter(modelValue, dateFormat);
});
}
};
});
我试图在我的项目中使用它,但问题是当 javascript 文件被缩小时它无法工作。它记录错误 [$injector:unpr] ...../$injector/unpr?p0=eProvider%20%3C-%20e%20%3C-%20dateDirective。 我尝试使用 this 缩小 请指导我如何缩小此指令。
发生这种情况是因为您没有使用注入 a.e $inject
.
.controller('Ctrl', ['$scope',function($scope){/* ... */}]);
.directive('date', ['dateFilter', function (dateFilter) {/* ... */}]);
因此您的指令(和控制器)将如下所示:
angular.module('app', []).controller('Ctrl', ['$scope',function($scope){
$scope.firstDate = new Date();
$scope.secondDate = "2014-02-20";
}]).directive('date', ['dateFilter', function (dateFilter) {
return {
require:'ngModel',
link:function (scope, elm, attrs, ctrl) {
var dateFormat = attrs['date'] || 'yyyy-MM-dd';
ctrl.$formatters.unshift(function (modelValue) {
return dateFilter(modelValue, dateFormat);
});
}
};
}]);