gpt4 book ai didi

javascript - 使用 js bookmarklet 制作一个 Angular 应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:35:58 24 4
gpt4 key购买 nike

我正在尝试通过单击 JS 书签从站点中创建一个 angularjs 应用程序。

问题是 ng-controller 不能被 angular 识别并抛出这个错误:

Error: Argument 'LDController' is not a function, got undefined

首先我定义了 ng-app 并使用同名的 angular.module,这有效,我得到了 <html ng-app="bookmarklet"> .然后我加载一个名为 application.js 的外部文件。 app.controller('LDController', ..)在此文件中定义!

我做错了什么?这是 js 书签代码:

function loadApp() {  document.getElementsByTagName('html')[0].setAttribute('ng-app', 'bookmarklet');  var div = document.createElement('div');  div.setAttribute('ng-controller', 'LDController');  div.innerHTML = '';  document.body.appendChild(div);  var js = document.createElement('script');  js.innerText = "var app = angular.module('bookmarklet', []);";  document.body.appendChild(js);  js = document.createElement('script');  js.setAttribute('src', 'http://example.org/js/application.js');  document.body.appendChild(js);}(function () {  if (typeof angular === 'undefined') {    js = document.createElement('script');    js.setAttribute('src', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js');    js.onload = loadApp;    document.body.appendChild(js);  }  else {    loadApp();  }}());

最佳答案

我一直在想,您正在通过添加 ng-app 指令手动初始化 Angular。执行此操作的规定方法是不插入 ng-app 而是在设置其他所有内容后在适当的元素上调用 angular.bootstrap。例如:

angular.element(document).ready(function() {
angular.bootstrap(document, ['bookmarklet']);
}

还有更多信息here

关于javascript - 使用 js bookmarklet 制作一个 Angular 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16691750/

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