私はいくつかの配列とデータを保持するAngularJSのものを持っています。ユーザーがファイルをアップロードすると、そのファイルは解析され、異なる配列を持つスコープに保存されます。しかし、このすべてとファイルがスコープ内に保持された後、innerHTMLを更新しようとしましたが、AngularJSコードは機能しません。私はng-repeat
を使って配列に基づいてテーブルを作成しますが、それは{{column}}
のようなコンテンツを持つ単一のセルのままです。AngularJS with innerHTMLを使用
app.directive(...
として何かをするときapp
とmodule
などは、未定義であることを言うので、私はディレクティブとテンプレートを使用して極端な難しさを持っていた
:
<html ng-app>
... //once a file is uploaded, total.js is called;
//this was so the app didn't try to run before a file was uploaded
<div id="someStuff">This will become a table once a file is uploaded</div>
これは私の範囲はtotal.jsに設定されている方法の簡単な例です:
function sheet($rootScope, $parse){
$rootScope.stuff = text;
//text is a variable that contains the file's contents as a string
};
document.getElementById('someStuff').innerHTML="<div ng-controller='sheet'>{{stuff}}</div>";
HTMLは変更されますが、ファイルの内容を印刷する代わりに、{{stuff}}
のみが出力されます。 innerHTMLにAngularJSが含まれていることを理解してもらうには、どうすればよいでしょうか?部分的に、あるいは指示文を使わないでください。
編集1: 私は$ compileを使用しようとしましたが、未定義とマークされています。私はthisを見てコンパイルの問題を見つけましたが、私はrtcherryの構文を理解していません。
編集2: が、私はまだ$を受け取り、私はそうのようにそれが含まれている場合、未定義のエラーをコンパイル:
function sheet($rootScope, $parse, $compile){...};
document.getElementById('someStuff').innerHTML=$compile("<div ng-controller='sheet'>
{{stuff}}</div>")(scope);
編集3: itcouldevenbeaboatさんのコメントは、私は多分表示する必要がありますことを決めた、非常に助けにならないでしたが、あなたは私がそれをしようとした方法を指導します。
私はシート関数の下で、このコードが含まれていました。
innerHTMLのは<div ng-controller='sheet'>{{stuff}}</div>
が含まれており、私はこれで
<div spreadsheet></div>
を含めましたindex.htmlに、私はエラーを受け取りませんが、テキストはありません
var app = angular.module('App', []);
app.directive('spreadsheeet', function($compile){
return{
templateUrl: innerHTML.html
}
});
表示されず、{{stuff}}
またはファイルの内容として表示されません。 templateUrl
の代わりにtemplate: "<h2>Hello!</h2>"
を入力するなどの単純な作業を行っても、Hello!
を印刷することはできません。それは私
document.getElementById('someStuff').innerHTML = "<div ng-controller='sheet'>{{stuff}}</div>";
$compile(document.getElementById('someStuff'))($scope);
のinnerHTML = $コンパイル( "
あなたはINJことができます。このような他の角度サービス/ツールと同様にコンパイルします。 $ scopeや$ rootScopeを使いたいのとちょうど同じ方法です。 – alfrescian
私はまだエラーが発生します。私の最新の編集を見てください。 – user2494584