Javascript 执行时出现AngularJS喷油器错误
我正在使用原始的AngularJS(v1.6.6)和jQueryv3.2.1,并试图获得一个基本的股票查询。。。这是我第一次真正修补AngularJS 但出于某种原因,我的控制台甚至在我有机会键入搜索词(如“GOOG”或“AAPL”)之前就报告了一个“注入器”问题。目前,我已将搜索词预填充为默认的“AAPL”Javascript 执行时出现AngularJS喷油器错误,javascript,angularjs,ajax,Javascript,Angularjs,Ajax,我正在使用原始的AngularJS(v1.6.6)和jQueryv3.2.1,并试图获得一个基本的股票查询。。。这是我第一次真正修补AngularJS 但出于某种原因,我的控制台甚至在我有机会键入搜索词(如“GOOG”或“AAPL”)之前就报告了一个“注入器”问题。目前,我已将搜索词预填充为默认的“AAPL” Uncaught Error: [$injector:modulerr] http://errors.angularjs.org/1.6.6/$injector/modulerr?p0=
Uncaught Error: [$injector:modulerr]
http://errors.angularjs.org/1.6.6/$injector/modulerr?p0=myApp&p1=Error%3A%20%5B%24injector%3Anomod%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.6.6%2F%24injector%2Fnomod%3Fp0%3DmyApp%0A%20%20%20%20at%20file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A7%3A76%0A%20%20%20%20at%20file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A26%3A408%0A%20%20%20%20at%20b%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A25%3A439)%0A%20%20%20%20at%20file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A26%3A182%0A%20%20%20%20at%20file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A42%3A290%0A%20%20%20%20at%20p%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A8%3A7)%0A%20%20%20%20at%20g%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A42%3A138)%0A%20%20%20%20at%20hb%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A46%3A250)%0A%20%20%20%20at%20Uc.c%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A22%3A19)%0A%20%20%20%20at%20Uc%20(file%3A%2F%2F%2FE%3A%2FSandbox%2Flibraries%2Fangular.min.js%3A22%3A332
这个错误对我来说毫无意义。。。有人能告诉我我的代码(如下所示)可能有什么问题吗
HTML:
股票跟踪器的Qwilr测试演示
股票:
stock-info.html
加载结果。。。
最新信息:{{details.dataset.Latest\u available\u date}
最新价格:{{curr(details.dataset.data[0][4]}
没有发现任何结果。
main.js
$(文档).ready(函数(){
//默认货币显示功能
功能电流(n){
返回“$”+n.tolocalString(“en-AU”{
样式:“十进制”,
最小分数位数:2
});
}
/*如果钱包值已在本地存储中可用,则使用该值填充钱包本地变量
否则使用默认值*/
储物柜冲水();
如果(储物柜获取(“钱包”)){
//警惕(“获取钱包”);
}否则{
Lockr.set(“钱包”,1000000);//默认钱包,100万美元!!
//警报(“设置默认钱包”);
}
var钱包=储物柜获取(“钱包”);
//若stocks数组存在,那个么从本地存储中提取它,否则将它定义为空白,我们将从那个里计算出来。
if(储物柜获取(“库存”){
//警惕(“获取股票”);
}否则{
储物柜组(“库存”,[]);//空组
//警报(“设置默认库存数组”);
}
var股票=Lockr.get(“股票”);
函数displayPortfolio(){
$(“.wallet”).html(`当前钱包:${curr(wallet)}`);
if(股票长度){
美元。每个(股票、功能(指数、元素){
$(“.stocks”).append(`${element.stockname}`);
});
}否则{
$(“.stocks”).html(“投资组合中无股票”);
}
}
/*角码*/
角度.module('myApp',[]).controller('StockController',函数($scope,$http){
$scope.$watch('search',function(){
fetch();
});
$scope.search=“AAPL”;
函数fetch(){
$http.get(“https://www.quandl.com/api/v3/datasets/WIKI/“+$scope.search+”.json”)。然后(函数(响应){
$scope.details=response.data;
});
}
});
/*端角码*/
displayPortfolio();
});
有没有办法确定此代码的错误以及如何修复
提前感谢…错误在于以可读的形式解释了问题
myApp
模块在应用程序启动时未定义。争用条件是由于它被放入$(document).ready(function(){…})
块中
由于潜在的问题,当AngularJS与jQuery结合使用时,不建议将ng app=“myApp”
放在
或其他包含
标记的元素上。错误是以可读的形式解释了问题
myApp
模块在应用程序启动时未定义。争用条件是由于它被放入$(document).ready(function(){…})
块中
当AngularJS与jQuery结合使用时,由于潜在的问题,也不建议将
ng app=“myApp”
放在
或其他包含
标记的元素上。AngularJS(v3.2.1)?我相信1.6.7现在是最晚的版本了…对于AngularJS,jQuery是3.2.1…会纠正的!AngularJS(v3.2.1)?我相信1.6.7现在是最晚的版本了…哎呀,1.6.6对于AngularJS,jQuery是3.2.1…会正确的!换句话说,不要在jQuery中包装你的AngularJS,而是反过来。换句话说,不要在jQuery中包装你的AngularJS,而是反过来。
<!DOCTYPE html>
<html ng-app="myApp" ng-controller="StockController">
<head>
<title>Qwilr Test Demonstration for Stock Tracker</title>
<script src="./libraries/jquery-3.2.1.min.js"></script>
<!-- DOM manipulation and AJAX calls -->
<script src="./libraries/angular.min.js"></script>
<!-- realtime interactivity -->
<script src="./libraries/lockr.js"></script>
<!-- local storage library -->
<script src="./script/main.js" ng-module="myApp"></script>
<head>
<body>
<div class="portfolio">
<div class="wallet"></div>
<div class="stocks"></div>
<div class="search">
Stock: <input type="text" ng-model="search" ng-model-options="{debounce: 800}" placeholder="Enter stock code" />
</div>
<div id="main-info" ng-include="'stock-info.html'"></div>
</div>
</body>
</html>
<div ng-if="!details.dataset">
Loading results...
</div>
<div ng-if="details.dataset.refreshed_at!==''">
<span class="span-outer">
<a href="https://www.google.com.au/search?q={{details.dataset.details.dataset_code}}" target="_blank">{{(details.dataset.name).replace(" Prices, Dividends, Splits and Trading Volume","")}}</a>
</span>
<p><strong>Latest Information:</strong> {{ details.dataset.newest_available_date }}</p>
<p><strong>Latest Price: {{curr(details.dataset.data[0][4]}}</strong></p>
</div>
<div ng-if="details.dataset.Response===''">
No results found.
</div>
$(document).ready(function() {
// Default Currency display function
function curr(n) {
return "$" + n.toLocaleString("en-AU", {
style: "decimal",
minimumFractionDigits: 2
});
}
/* If wallet value already available in local storage, use that value to populate wallet local variable
else use default value. */
Lockr.flush();
if (Lockr.get('wallet')) {
//alert("Getting wallet");
} else {
Lockr.set("wallet", 1000000); // Default wallet, 1 million dollars!!
//alert("Setting default wallet");
}
var wallet = Lockr.get("wallet");
// If stocks array exists then pull it from local storage, else define it as a blank and we'll work it out from there.
if (Lockr.get('stocks')) {
//alert("Getting stocks");
} else {
Lockr.set("stocks", []); // Empty set
//alert("Setting default stocks array");
}
var stocks = Lockr.get("stocks");
function displayPortfolio() {
$(".wallet").html(`Current Wallet: ${curr(wallet)}`);
if (stocks.length) {
$.each(stocks, function(index, element) {
$(".stocks").append(`<div class="stock">${element.stockname}</div>`);
});
} else {
$(".stocks").html("No stocks in portfolio");
}
}
/* Angular Code */
angular.module('myApp', []).controller('StockController', function($scope, $http) {
$scope.$watch('search', function() {
fetch();
});
$scope.search = "AAPL";
function fetch() {
$http.get("https://www.quandl.com/api/v3/datasets/WIKI/" + $scope.search + ".json").then(function(response) {
$scope.details = response.data;
});
}
});
/* END Angular Code */
displayPortfolio();
});