私はいくつかのテンプレートを私のDBからいくつかのデータを使用している角$コンパイルを使用しています。私はそれをユーザーに表示し、後でそれをデータベースに保存するためにiframeの中に挿入する必要があります。角度コンパイルHTMLと変更を防ぐ
私の問題は、テンプレートをスコープの外に出すと、コンテンツをバインドしてその中に配置されたデータが消えてしまうことです。バインドされたデータを保持するためには何が必要ですか?
新しいスコープを作成して既存のスコープを使用しようとしましたが、どちらの場合も失敗します。私は、コンテンツをコンパイルどこ
これは、次のとおりです。
//Method is called by the user
$scope.mountTemplate = function() {
//Load the template the user chose before
TemplateLoader.getTemplate($scope.modelTemplate.template + '.html').then(function(responseTemplate) {
//Load the template the user chose before, here i just read the html from a file
loadRegisters(url, $scope.formContentData.selected, append)
.then(function(response) {
$scope.itensTemplate = response.map(function(elem) { return configRegisters(elem); });
var compiledHTML = $compile(responseTemplate)($scope);
//Here the data appears
$('#divVisualizer').append(compiledHTML);
$timeout(function() {
//At this point, when i log it the ng-repeat and other binded data disappears
console.log('compiledHTML', compiledHTML);
}, 1000);
//At this point, when i place it inside the iframe the ng-repeat and other binded data disappears
$scope.trustedHTML = compiledHTML;
}, function(response) {
console.log('response', response);
});
}, function(response) {
console.log(response);
});
}
は私がバインドさのデータを保つために何をすべき?また、私はコンパイルの応答を文字列にする必要があります、それはオブジェクトとして戻ってきます。どうすれば変換できますか?
EDIT
私のアプリが何をするのか明確にする:私は、ユーザーがこれらのレジスタで満たされるように、その後それが保存されているデータベースやテンプレートからいくつかのレジスタを選択するニュースレタービルダーを構築しますよDBは後で電子メールで送信されます。
を移入私の問題を解決するために管理していますか? –
DOMを使って遊びたいときは、角度で使われているディレクティブの概念を使うべきです。 –
loadRegistersは、ユーザーがテンプレートの生成を選択したときに呼び出される別のスコープメソッドの内部にあります。私は、ページ上に配置されたテンプレートを本当に必要としないので、このディレクティブを使用することはできません。データベースに保存する必要があります。 – Terkhos