Comment détruire la portée manuellement dans angularjs si un élément est supprimé à partir de javascript?
Je suis insertion angulaire de modèle à l'élément.
Considérons l'exemple suivant,
HTML:
<p>
<c ng-controller="ctrl">
...
</c>
</p>
si je supprime c à partir de javascript.
Ce qui va avoir des effets secondaires? (champ de fuite)
Comment faire pour éviter cela?
J'ai utilisé cette,
JS:
function render() {
var lastScope = angular.element('c').scope();
if(lastScope) {
lastScope.$destroy();
}
$('c').remove();
getTemplate(context + '/c.html', function(template) {
if (template) {
angular.element(document).injector().invoke(['$compile', '$rootScope', function($compile, $rootScope) {
$('p').append($compile(template)($rootScope));
$rootScope.$apply();
}]);
}
});
}
quand je clique sur l'onglet render fonction appelée à chaque fois.
Toutes les autres suggestions?
- Vous pouvez éviter cela en utilisant ng-si, avec les supprime complètement l'élément et la portée
Vous devez vous connecter pour publier un commentaire.
créer de nouvelles perspectives et de le détruire comme:
vous pouvez utiliser
il est awlays bonnes pratiques à définir votre portée variable comme objet, comme
de sorte que vous pouvez destryo ensemble de l'objet comme
Question similaire est ici
Donnez un exemple de la portée de dollars de détruire événement?