私は、次のメソッドを介して実行されるいくつかの任意のJavaScriptコードがあります。AngularJS内の評価されたJavaScriptをどのようにデバッグできますか?
- javascriptの
eval
関数にコード列を結果としてAJAX呼び出し - パスを介してクライアントのブラウザにそれをダウンロードします。
注:私は/ダウンロードコードが特定の範囲内で実行する必要があるため<script>
さんにsrc
プロパティをそのファイルのURLを追加することで、コードを実行することはできません。
Google Chromeでこのコードをデバッグします。 AngularJSを使用しているときではなく、プレーンなJavascriptを使用してこれを行うことができます。これをどうすれば解決できますか?
例1(プレーンJS、私はcode.js
を検査するためのオプションを与えています):
var codeToRun = ""
+"var a = 1;\n"
+"var b = 2;\n"
+"This line will fail\n"
+"//@ sourceURL=code.js";
eval(codeToRun);
結果:http://i.imgur.com/3LL9xi7.png
デモ:https://jsfiddle.net/AlexLeung/mpjrwmbm/
例2(AngularJS、私は検査するオプションが与えられていないですcode.js
):
var codeToRun = ""
+"var a = 1;\n"
+"var b = 2;\n"
+"This line will fail\n"
+"//@ sourceURL=code.js";
angular.module("myApp", [])
.controller("myController", function($scope) {
eval(codeToRun);
});
結果:http://i.imgur.com/x7lZcUf.png
デモ:http://jsfiddle.net/oeoaep0o/
多分、https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$evalを試してください。 – dandavis
正直言って、もし私があなただったら、私はデザインを変更するつもりです。なぜ特定の範囲で実行する必要がありますか?そうでないようにしてください。 – Casey
あなたはあなたのコントローラで呼び出すグローバル関数を持っていて、スコープから必要なものを引数として渡すことができます。 – Casey