2016-05-19 4 views
1

überprüfen Sie bitte diese LinkWie eine Steuerung geladen html (AngularJS)

hier ist meine Frage zu binden, wie kann ich einen Controller Page2Controller binden irgendeine Sache in

{{wat}} 
+0

Sie müssen die HTML laden, verwenden Sie dann [ '$ compile'] (https://docs.angularjs.org/api/ng/service/$compile), um es zu kompilieren. –

+0

Wo soll ich es verwenden? – user2764027

+0

Ist das nicht die Richtlinie? –

Antwort

1

Der einfache Weg ist zu drucken zu verwenden $compile in der Steuerung.

Kompiliert eine HTML-Zeichenfolge oder ein DOM in eine Vorlage und erstellt eine Vorlagenfunktion, die dann zum Verknüpfen von Bereich und Vorlage verwendet werden kann.

var app = angular.module("myApp", []); 
app.controller("myCtrl", function($scope, $http, $sce, $compile) { 
    $scope.wat = 'blablalba'; 
    $http.get("page2.html").then(function (response) { 
    var str = '<div ng-controller="Page2Controller"> {{wat}} <div style="background: red; height: 50px; width: 50px"></div> </div>'; 
    var cont = $compile(response.data)($scope); 
    angular.element(document.querySelector('p')).append(cont); 
    }); 
}); 

app.controller('Page2Controller', function($scope) { 

}); 
<div ng-app="myApp" ng-controller="myCtrl"> 
    <p></p> 
</div> 

http://plnkr.co/edit/cOu69mPhfrvaA1buDUjT?p=preview

Der bessere Weg ist, eine Richtlinie wie in dieser Antwort zu verwenden: Compiling dynamic HTML strings from database

+0

danke, nur eine Frage, wie kann ich einen geladenen Controller binde ich meine: var str = '

{{wat}}
app.controller (' Page2Controller 'function ($ scope) { });'; – user2764027

+0

Ich bin mir nicht sicher, ob ich die Frage verstehe. 'Ich binde einen geladenen Controller'? Was meinst du mit "binden"? –

Verwandte Themen