Я собрал приложение AngularJS, обслуживаемое JSF/primefaces. Эта страница работает очень хорошо, если ее воспитывают с Chrome или IE, но если она воспитывается в Firefox, она не выполняет расширения AngularJS. Поэтому, когда я смотрел на консоли JS, я получаю следующее сообщение об ошибке в первой строке моего JS скрипта (reservation_list.js): AngularJS с JSF/Primefaces не работает в Firefox
ReferenceError: angular is not defined
Вся эта строка содержит это:
var disJockeySpyModule = angular.module('ReservationList', []);
Я думаю, что есть проблема с упорядочением или местоположением моих элементов, свойственных Firefox. Я попытался изменить порядок и расположение элементов безрезультатно. Кто-нибудь есть идеи, как это исправить?
Мой файл XHTML будет ниже (изменен, чтобы защитить собственную природу фактического содержания):
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
<ui:composition template="template.xhtml">
<ui:define name="content">
<h:form id="myForm">
<div ng-app="ReservationList">
<h:outputScript library="primefaces" name="jquery/jquery.js" />
<script
src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.2/angular.min.js"></script>
<h:outputScript library="js" name="reservation_list.js" />
<div ng-controller="myController">
<table>
<tbody>
<tr>
<td>
<div
class="ui-panel ui-widget ui-widget-content ui-corner-all">
<div
class="ui-panel-titlebar ui-widget-header ui-helper-clearfix ui-corner-all">
<span class="ui-panel-title">#{messages._reservation_list}</span>
</div>
<ul class="reservation-list">
<li class="reservation"
ng-repeat="(key, reservation) in reservations"
ng-click="setCurrentReservation(reservation)"
title="#{messages.reservation_id} {{reservation.id}}">
<table>
<tbody>
<tr>
<td><label class="ui-outputlabel ui-widget">{{reservation.reservationId}}</label></td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
Спасибо
Загрузите файл angualr.js в свою папку ресурсов и включите его через outputScript с заголовком 'target = ''. –
Спасибо, что решает! К сожалению, я не видел вашего ответа, пока я уже не понял его. Ниже я приведу более подробное описание. – Yoshiya