Tôi có chỉ thị in ra thông báo flash cho người dùng. Mọi thứ hoạt động tốt trên localhost của tôi nhưng ngay sau khi tôi thử nghiệm nó trên Heroku, thông báo flash không xuất hiện. Đây là bộ điều khiển.Chỉ thị/Nhà máy không hoạt động trong sản xuất
angular.module("alerts")
.controller("AlertsController", alertController)
alertController.$inject = ['Flash']
function alertController(Flash) {
var vm = this;
vm.flash = Flash;
}
Chỉ thị ...
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);
}
}
}
Và các nhà máy xử lý lưu trữ các tin nhắn flash.
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);
}
}
mã html của tôi ...
<div ng-controller="AlertsController as alerts">
<div ng-repeat="message in alerts.flash.messages">
<flash type="message.type" text="message.text"></flash>
</div>
</div>
Không có lỗi xuất hiện trên console. Điều thú vị là thông báo flash được trình bày trong html không tải.
Đây là những gì được hiển thị trong máy chủ cục bộ.
<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>
Nhưng về sản xuất Heroku
<div ng-repeat="message in alerts.flash.messages" class="ng-scope"></div>
tôi là tạo ra các flash trong mã của tôi qua ..
Flash.addMessage({type: "success", text: "Your link has been copied!"});
Câu hỏi của tôi là, tại sao điều này không xuất hiện trên mã sản xuất của tôi nhưng nó xuất hiện trên localhost của tôi và làm thế nào để sửa nó?
bạn có đang khai thác tối đa javascript của mình không? –
Trình duyệt nào bạn đang kiểm tra lỗi giao diện điều khiển? Một số trình duyệt hiển thị một số lỗi, trong khi các trình duyệt khác chỉ cảnh báo hoặc không có lỗi nào. Hãy dùng thử Firefox, Chrome, IE, Opera. Bên cạnh đó, bạn có biết nếu máy chủ của bạn đang lưu vào bộ nhớ đệm đầu ra không? Vì đây là các tệp tĩnh nên bộ nhớ đệm rất có khả năng xảy ra. Đảm bảo tệp bạn đang tải xuống là tệp mới nhất hoặc tệp được lưu trong bộ nhớ cache. – rodrigogq
Tôi đang sử dụng 'ngannotate-rails' để giúp tôi rút gọn. Đối với trình duyệt, tôi đang kiểm tra tất cả các trình duyệt. – jason328