这是我正在做的事情的代码:
<!-- underscore -->
<script src="js/underscore.js/underscore.js" type="text/javascript"></script>
<!-- Scripts -->
<script src="js/bootstrap/bootstrap.min.js"></script>
<script src="js/jquery/jquery.mixitup.min.js"></script>
<!-- Angular -->
<script src="js/angular/app.js" type="text/javascript"></script>
<script src="js/angular/controllers/controllers.js" type="text/javascript"></script>
<script src="js/angular/directives/directives.js" type="text/javascript"></script>
<script src="js/angular/services/data-service.js" type="text/javascript"></script>
上面的代码位于底部。
这是我在Google中遇到的错误
错误:[$ injector:unpr]未知提供者:JSONFilterProvider&lt; - JSONFilter http://errors.angularjs.org/1.4.2/ $注射器/ unpr?P0 = JSONFilterProvider%20%3 C-%20JSONFilter 在REGEX_STRING_REGEXP(http://localhost/website/js/angular/angular.js:68:12) 在http://localhost/website/js/angular/angular.js:4264:19 at Object.getService [as get](http://localhost/website/js/angular/angular.js:4411:39) 在http://localhost/website/js/angular/angular.js:4269:45 at Object.getService [as get](http://localhost/website/js/angular/angular.js:4411:39) at $ get(http://localhost/website/js/angular/angular.js:18091:24) at isStateless(http://localhost/website/js/angular/angular.js:12956:12) 在findConstantAndWatchExpressions(http://localhost/website/js/angular/angular.js:13013:33) 在http://localhost/website/js/angular/angular.js:12967:7 在forEach(http://localhost/website/js/angular/angular.js:336:20)
我正在使用angular-ui-router.js vice ng-Route。
问题是,代码中的NOWHERE我引用了JSONFilter ......
错误出现在此处的angular.js:12321
// The reason behind this is that console.log has type "object" in IE8...
try {
hasApply = !!logFn.apply;
} catch (e) {}
if (hasApply) {
return function() {
var args = [];
forEach(arguments, function(arg) {
args.push(formatError(arg));
});
return logFn.apply(console, args);
};
}
我没有使用IE8,也没有使用互联网爆炸或现在,立即让病毒感染的边缘。我把它丢弃在WINDOWS 10上。
重点关注。任何线索来自何处或我如何得到它?
BTW这是我的app.js文件:
/* global angular */
// Code goes here
var myApp;
myApp = angular.module("myApp", [
"ui.router"
]);
myApp.config(function ($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist(['self', '**']);
});
myApp.config(function ($stateProvider, $urlRouterProvider) {
// For any unmatched url, send to /route1
$urlRouterProvider.otherwise("home");
$stateProvider
.state('home', {
url: "/home",
views: {
"mainHeader": {
templateUrl: "templates/mainHeader.html"
},
"mainNav": {
templateUrl: "templates/mainNav.html"
},
"mainContent": {
templateUrl: "templates/home.html"
},
"mainFooter": {
templateUrl: "templates/mainFooter.html"
},
"homeDetails": {
templateUrl: 'templates/home-details.html'
}
}
})
.state('about', {
url: "about",
views: {
"mainAbout": {
templateUrl: "templates/about.html"
},
"aboutDetails": {
templateUrl: 'templates/about-details.html'
}
}
});
});
console.log("Host name is: " + document.location.hostname);
if (document.location.hostname === "localhost") {
myApp.constant('URL', '/website/js/json/');
} else if (document.location.hostname === "website.net" || "www.website.net") {
myApp.constant('URL', '/js/json/');
} else {
myApp.constant('URL', '/website/js/json/');
}
//Registering the company for the key achievements
//This defines and initializes a value service called company and assigns it an
//object with some default values.
myApp.constant("nbrCompanies", {
nbr: 0
});
myApp.constant("nbrSites", {
nbr: 0
});
myApp.constant("nbrSkills", {
nbr: 0
});
感谢您的帮助......
更新:这是包含ui-views
的内容
<div class="container" ng-controller="homeController as ctrlHome">
<!-- Nav UI View -->
<nav id="mainbar" class="hidden-xs" ui-view="mainNav"></nav>
<!-- Nav UI View -->
<div id="wrap">
<!-- injected header content -->
<div id="header" ui-view="mainHeader"></div>
<!-- injected main content -->
<div id="bodyStuff" ui-view="mainContent"></div>
<!-- End of Injected Content-->
<!-- Detail View -->
<div class="details" ui-view="homeDetails"></div>
<!-- End Detail View -->
</div> <!-- wrap -->
<footer id="footer" ui-view="mainFooter"></footer>
</div> <!-- container -->
<!-- underscore -->
<script src="js/underscore.js/underscore.js" type="text/javascript"></script>
<!-- Scripts -->
<script src="js/bootstrap/bootstrap.min.js"></script>
<!-- Angular -->
<script src="js/angular/app.js" type="text/javascript"></script>
<script src="js/angular/controllers/controllers.js" type="text/javascript"></script>
<script src="js/angular/directives/directives.js" type="text/javascript"></script>
<script src="js/angular/services/data-service.js" type="text/javascript"></script>
</body>
答案 0 :(得分:0)
我发现了问题:
在我的home.html页面的调用中,我有以下代码:
<div class="feature-widget">
<article class="home-features-item hover">
<div class="item-icon">
<i class="fa fa-html5"></i>
</div>
<div class="item-content">
<h3>Lorem ipsum mollit sunt</h3>
<!-- This is where the culprit was... SHOW is what was NEEDED -->
**<a ui-sref="detail({id: show.id})">{{show.name}}</a>**
<!-- This is what I had:... the word SHOWS was wrong
**<a ui-sref="detail({id: show.id})">{{shows.name}}</a>**
-->
<pre hidden="hidden">{{show|json}}</pre>
<p>Lorem ipsum Labore adipisicing nisi magna do nisi pariatur aliquip eu sed voluptate consequat sunt aute aliqua exercitation minim cupidatat.</p>
<p>Lorem ipsum Ut dolor et anim occaecat ex aliquip esse labore fugiat in do magna dolore pariatur eiusmod irure officia.</p>
</div>
</article> <!-- home-features-item -->
</div> <!-- feature-widget -->
这里是我搞砸的控制器和服务:
控制器:
/* global myApp, ctrlRes */
'use strict';
myApp.controller('homeController',
['$scope','$state','homeDataService',
function ($scope, $state, homeDataService) {
var ctrlHome = this;
ctrlHome.content = [];
ctrlHome.fetchHome = function () {
//General Data
homeDataService.getHomeData().then(function (result) {
ctrlHome.content = result.data;
console.log("General: ", result.data);
});
};
ctrlHome.fetchHome();
//Redirects to a page sent into this function
$scope.redirectToPage = function (pageToGoTo) {
//if pageToGoTo = home, then route to /home!
$state.go(pageToGoTo);
};
//Now we route with lists
$scope.home = homeDataService.list();
}]);
//This is the details for HOME
myApp.controller('homeDetailController',
['$scope','$stateParams', 'homeDataService',
function($scope, $stateParams, homeDataService) {
var ctrlHmDets = this;
ctrlHmDets.content = [];
ctrlHmDets.content = homeDataService.find($stateParams.id);
$scope.selectedShow = homeDataService.find($stateParams.id);
}]);
SERVICE:
/* global myApp, _ */
var shows = [];
myApp.factory('homeDataService', function ($http, URL) {
var getHomeData = function () {
return $http.get(URL + 'general-junk.json')
.success(function (data) {
console.log("SUCCESS!");
console.log("The General Junk Home: " + data.basedata.companyinfo);
return data.basedata.companyinfo;
})
.error(function (e) {
console.log("He\'s dead Jim!", e);
return e;
});
};
//Details for the Home Page
shows = [{
id: 1,
page: 'Home',
name: 'Home Details',
description: 'This is the detail content'
}];
return {
getHomeData: getHomeData,
list: function () {
return shows;
}, //This is for DETAILs if we should have them
find: function (id) {
return _.find(shows, function (show) {
return show.id === id;
});
}
};
});
谢谢,杰夫的灵感所以DEBUG!