У меня есть директива, которая выводит флеш-сообщения для пользователей. Все работает отлично на моем localhost, но как только я проверю его на Heroku, флеш-сообщение не появляется. Вот контроллер.
angular.module("alerts")
.controller("AlertsController", alertController)
alertController.$inject = ['Flash']
function alertController(Flash) {
var vm = this;
vm.flash = Flash;
}
Директива...
angular.module("alerts")
.directive('flash', flash);
flash.$inject = ['$timeout'];
function flash ($timeout){
return {
restrict: 'E',
replace: true,
scope: {
text: '=',
type: '='
},
template: '<div id="flash_message" class="notification" ng-class="type"> {{text}} hello </div>',
link: function(scope, element, attrs){
$timeout(function(){
element.remove();
}, 5000);
}
}
}
И factory, который обрабатывает флэш-сообщения.
angular.module("alerts")
.factory("Flash", flash)
function flash() {
var messages = [];
var results = {
messages: messages,
printMessage: printMessage,
addMessage: addMessage
}
return results;
function printMessage() {
return results.messages
}
function addMessage(message) {
results.messages.push(message);
}
}
Мой html-код...
<div ng-controller="AlertsController as alerts">
<div ng-repeat="message in alerts.flash.messages">
<flash type="message.type" text="message.text"></flash>
</div>
</div>
На консоли не появляется ошибка. Самое забавное, что флэш-сообщение представлено в html не загружается.
Это то, что показано в localhost.
<div ng-repeat="message in alerts.flash.messages" class="ng-scope">
<div id="flash_message" class="notification ng-binding ng-isolate-scope success" ng-class="type" type="message.type" text="message.text"> Your link has been copied! hello </div>
</div>
Но на геройку производство
<div ng-repeat="message in alerts.flash.messages" class="ng-scope"></div>
Я создаю flash в своем коде через.
Flash.addMessage({type: "success", text: "Your link has been copied!"});
Мой вопрос: почему это не отображается в моем производственном коде, но появляется на моем локальном хосте и как его исправить?