编辑:这个问题是固定的。由于火狐Objects/Object/watch中的这个问题,我发现在ui路由器中使用"watch“作为我的状态之一存在问题。
滚动到此问题的底部,查看main.js文件中的最终编辑。
因此,我创建了一个角应用程序(1.5.7版),您可以签出项目文件,并在这里查看到实时部署的链接-> https://github.com/StephenGrable1/AngularJS-Single-Page
它在Chrome和Safari中工作得很好。但是,在火狐中,我收到了一个错误$injector:modulerr。
控制台中的错误提供了指向角文档的一部分的链接,其内容是:“由于: queued.shift不是函数,无法实例化模块单页应用程序”。我已经为良好的实践注入了我的依赖关系,但这仍然不能解决Firefox中的问题。
下面是我的两个主要角度文件。
这是我的控制器/ConactCtrl.j
angular
.module('Single-Page-App')
.controller('contactCtrl', ['$scope', '$http', function($scope, $http){
$scope.contact = {name : '', email : '', subject : '', message : ''};
var app = angular.module('Single-Page-App', ['ui.router', 'ngMessages']);
...这是我的js/main.js,它使用ui-路由器
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state("home", {
url:"/home",
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
})
.state("listen", {
url:"/listen",
views: {
"main@": {
templateUrl: "partials/listen.html"
}
}
})
.state("watch", {
url:"/watch",
views: {
"main@": {
templateUrl: "partials/watch.html"
}
}
})
.state("contact", {
url:"/contact",
views: {
"main@": {
templateUrl: "partials/contact.html"
}
}
}
}])我想成为一个好的编程者,关心跨浏览器的功能(我知道的很好),所以我想找出如何解决这个问题,为我自己和其他可能也遇到这个问题的人。
更新:这是我在index.html底部的脚本顺序
<script src="js/angular-1.5.7/angular.js"></script>
<script src="js/angular-1.5.7/angular-ui-router.js"></script>
<script src="js/angular-1.5.7/angular-messages.js"></script>
<!-- Our Custom Javascripts -->
<script src="js/main.js"></script>
<script src="controllers/contactCtrl.js"></script>
<script src="js/footer.js"></script>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script src="js/bootstrap.min.js"></script>我修改了控制器以使用var "app“,如下所示:
app.controller('contactCtrl', ['$scope', '$http', function($scope, $http){
$scope.contact = {name : '', email : '', subject : '', message : ''};然而,这个错误仍然存在于Firefox :/
UPDATE:当我删除ng应用程序中的名称时,应用程序在Firefox中显示得很好,但是路由不工作,角控制器也不工作。下面是解决Firefox错误的代码,但它破坏了不稳定的功能。
<!DOCTYPE html>
<html lang="en" ng-app> <!-- When I rename to np-app="Single-Page-App" it breaks in Firefox. -->
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AngularJS Single Page</title>
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
<div ng-include="'templates/header.html'"></div>
<div ui-view="main"></div><!-- This is where the website content gets inserted -->
<div ng-include="'templates/footer.html'"></div>
<script src="js/angular-1.5.7/angular.js"></script>
<script src="js/main.js"></script>
<script src="js/angular-1.5.7/angular-ui-router.js"></script>
<script src="js/angular-1.5.7/angular-messages.js"></script>
<!-- Our Custom Javascripts -->
<script src="js/main.js"></script>
<script src="controllers/contactCtrl.js"></script>
<script src="js/footer.js"></script>
<script src="https://code.jquery.com/jquery-2.2.4.js"></script>
<script src="js/bootstrap.min.js"></script>
</body>
</html>更新:
问题解决了!
所以很明显,我的一个州的“手表”名字引起了错误,所以我把它换成了"watchHere“,而且它在火狐中工作!这个名字的改变修复了错误!在未来,我希望这能节省一些可怜的流浪灵魂的时间。
var app = angular.module('Single-Page-App', ['ui.router', 'ngMessages']);
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
var home = {
name: 'home',
url: '/home',
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
}
var listen = {
name: 'listen',
url: '/listen',
views: {
"main@": {
templateUrl: "partials/listen.html"
}
}
}
var contact = {
name: 'contact',
url: '/contact',
views: {
"main@": {
templateUrl: "partials/contact.html"
}
}
}
var watchHere = {
name: 'watchHere',
url: '/watch',
views: {
"main@": {
templateUrl: "partials/watch.html"
}
}
}
$stateProvider.state(home);
$stateProvider.state(listen);
$stateProvider.state(contact);
$stateProvider.state(watchHere);
}])
angular.bootstrap(document, ['Single-Page-App']);发布于 2016-08-31 23:19:07
修改订单代码
MAIN.js
// first LINE
var app = angular.module('Single-Page-App', ['ui.router', 'ngMessages']);
app.config(['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/home');
$stateProvider
.state("home", {
url:"/home",
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
})
.state("listen", {
url:"/listen",
views: {
"main@": {
templateUrl: "partials/listen.html"
}
}
})
.state("watch", {
url:"/watch",
views: {
"main@": {
templateUrl: "partials/watch.html"
}
}
})
.state("contact", {
url:"/contact",
views: {
"main@": {
templateUrl: "partials/contact.html"
}
}
}
}])var "app“是你的模块
文件CONTROLLER.JS
app.controller('contactCtrl', ['$scope', '$http', function($scope, $http){
$scope.contact = {name : '', email : '', subject : '', message : ''};和订单文件
1. <script src="angular.min.js">
2. <script src="main.js">
3. <script src="controller.js">并主要使用这一结构:
app.config(['$stateProvider',function($stateProvider ) {
var home = {
name: 'home',
url: '/home',
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
}
var contact = {
name: 'contact',
url: '/contact',
views: {
"main@": {
templateUrl: "partials/watch.html"
}
}
}
var example = {
name: 'example',
url: '/example',
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
}
var example2 = {
name: 'example2',
url: '/example2',
views: {
"main@": {
templateUrl: "partials/home.html"
}
}
}
$stateProvider.state(home);
$stateProvider.state(contact);
$stateProvider.state(example);
$stateProvider.state(example2);
}])https://stackoverflow.com/questions/39260298
复制相似问题