/ / Szablon renderowania kątowego bez wiązania - angularjs

Szablon renderowania kątowego bez wiązania - angularjs

Nie wiedziałem, jak wyrenderować szablon kątowy do HTML bez powiązań.

Przykład:

scope.value1 = 99;
scope.value2 = "cat";
scope.div_class = "red-cell";

var template = "<div class="{{ div_class }}">{{ value1 }}, {{ value2 }}</div>";
var linkFn = $compile(template);
var content = linkFn(scope);

console.log(content);

Wynik to element DOM z wiązaniami kątowymi:

<div class="{{ div_class }} ng-binding ng-scope">{{ value1 }}, {{ value2 }}</div>

To, czego chcę, to renderowany element bez wiązanie:

<div class="red-cell">99, cat</div>

Jestem świadomy jednorazowych powiązań. Jednak, ponieważ mam już do czynienia z dużą ilością renderowania, myślę, że jest to czystsze niż garść 1 TB w moim szablonie.

Czy to możliwe w kanciastym?

Wyjaśnienie: Chcę renderować szablon do statycznego HTML. Będzie wiele zmiennych, więc musi być renderowana z zakresem / kontekstem.

Odpowiedzi:

0 dla odpowiedzi № 1

Zamiast <div>{{ value }}</div>, możesz spróbować <div ng-bind-html="value"></div> i sprawdź, czy to działa?


0 dla odpowiedzi nr 2

Jeśli nie chcesz, aby wygenerowane klasy zostały dodane do renderowanego html, musisz:
1. albo nie ma wiążącej treści w szablonie.
2. lub musisz mieć debuginfoenabled jako false:

myApp.config(["$compileProvider", function ($compileProvider) {
$compileProvider.debugInfoEnabled(false);
}]);

0 dla odpowiedzi № 3

Jeśli potrzebujesz statycznego html, po prostu upewnij się, że masz szablon statyczny:

scope.value1 = 99;
scope.value2 = "cat";
scope.div_class = "red-cell";

var template = "<div class="{{ div_class }}">{{ value1 }}, {{ value2 }}</div>";
convertToStatic(template, scope); //regex find {{s*(w+)s*}} and replace with scope[$1] where $1 is the regex capture group
var linkFn = $compile(template);
var content = linkFn(scope);

console.log(content);