4

JS ブックマークレットをクリックして、サイトから angularjs アプリを作成しようとしています。

問題は、ng-controller が angular によって認識されず、次のエラーがスローされることです。

エラー: 引数 'LDController' は関数ではありません。未定義です

最初に ng-app を定義し、angular.module を同じ名前で使用します。これは機能し<html ng-app="bookmarklet">ます。次に、application.js という名前の外部ファイルを読み込みます。app.controller('LDController', ..)はこのファイルで定義されています!

私は何を間違っていますか?js ブックマークレット コードは次のとおりです。

関数 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('スクリプト');
  js.setAttribute('src', 'http://example.org/js/application.js');
  document.body.appendChild(js);
}

(関数 () {
  if (typeof angular === '未定義') {
    js = document.createElement('スクリプト');
    js.setAttribute('src', 'https://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js');
    js.onload = loadApp;
    document.body.appendChild(js);
  }
  そうしないと {
    loadApp();
  }
}());
4

2 に答える 2