Доступ к области видимости в функции ссылок в директиве «неопределен» после миниатюризации для ряда примеров (с использованием Closure Compiler), но отлично подходит для предварительной оценки.AngularJS: Масштаб недоступен в директиве после минимизации
Например, код из Углового учебника с некоторыми изменениями. После минимизации $ scope.format не подбирается директивой в любой момент. Директива показывает формат по умолчанию (15 июля 2015 г.) без каких-либо ошибок. Перед минимизацией директива отображает формат, определенный в $ scope.format (7/15/2015 12:09:04 AM).
app.js
.controller('Controller', ['$scope', function ($scope) {
$scope.format = 'M/d/yy h:mm:ss a';
}])
.directive('myCurrentTime', bd.myCurrentTime.Directive.factory)
myCurrentTime-directive.js
'use strict';
goog.provide('bd.myCurrentTime.Directive.factory');
/**
* Example directive factory.
*
* @return {Object}
* @ngInject
* @export
*/
bd.myCurrentTime.Directive.factory = function ($interval, dateFilter) {
function link(scope, element, attrs) {
var format,
timeoutId;
function updateTime() {
element.text(dateFilter(new Date(), format));
}
scope.$watch(attrs.myCurrentTime, function (value) {
format = value;
updateTime();
});
element.on('$destroy', function() {
$interval.cancel(timeoutId);
});
// start the UI update process; save the timeoutId for canceling
timeoutId = $interval(function() {
updateTime(); // update DOM
}, 1000);
}
return {
link: link
};
};
// Added by ng-annotate
bd.myCurrentTime.Directive.factory.$inject = ["$interval", "dateFilter"];
HTML файл:
<div ng-controller="Controller">
Date format: <input ng-model="format"> <hr />
Current time is: <span my-current-time="format"></span>
</div>
Вы можете предоставить plunkr для мини-и неминифицированного варианта? – Grundy
Какую библиотеку вы используете для минимизации? – tomepejo
@tomepejo Первое предложение, он использует компилятор Google Closure. – Agop