gpt4 book ai didi

javascript - Angularjs 代码不在匿名函数中运行

转载 作者:行者123 更新时间:2023-11-30 16:04:00 24 4
gpt4 key购买 nike

我编写了一个动态加载 jQuery 和 Angular 的匿名 javascript 函数。但是,由于某种原因,我的 Angular 代码没有运行。在我点击 main 函数之前,代码一直有效。然后我尝试发出 http 请求并在我的 Angular Controller 中打印结果,但由于某种原因它们没有打印。有人可以帮忙吗?这是我的 fiddle 和代码:

https://jsfiddle.net/5f44yb7k/1/

提前致谢!

(function() {

var jQuery;
var jquery_tag = document.createElement('script');
var angular_tag = document.createElement('script');

function getJqueryTag() {
console.log('getting jquery tag');
jquery_tag.setAttribute("type","text/javascript");
jquery_tag.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js");
jquery_tag.onload = scriptLoadHandler;
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(jquery_tag);
if(jquery_tag.onload) { //ensure angular loads after jQuery
getAngularTag();
}

}

function getAngularTag() {
console.log('now getting angular tag...');
angular_tag.setAttribute("type","text/javascript");
angular_tag.setAttribute("src", "https://ajax.googleapis.com/ajax/libs/angularjs/1.0.8/angular.min.js");
angular_tag.onload = scriptLoadHandler;
(document.getElementsByTagName("head")[0] || document.documentElement).appendChild(angular_tag);
}

getJqueryTag();


function scriptLoadHandler() {
if(window.jQuery) {
jQuery = window.jQuery
main();
}
}

function main() {
jQuery(document).ready(function($) {
console.log('now in main function'); //this prints fine
var test = angular.module('test', []);

function main_controller($scope, $http) {
$http.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20in%20(select%20woeid%20from%20geo.places(1)%20where%20text%3D%22fairfax%2C%20va%22)&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys')
.success(function(data) {
console.log('---data returned---'); //not printing
console.log(data); //not printing
})
.error(function(data) {
console.log('error: ' + data);
});
}
});
}

})();

最佳答案

Angular 超出范围。如果您以这种方式加载它,您将需要调用引导函数来启动和运行它。

我从来没有用这种方式加载过它,但请参阅:https://docs.angularjs.org/guide/bootstrap ,特别是关于手动初始化的部分。

关于javascript - Angularjs 代码不在匿名函数中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com