2016-05-19 2 views
1

пожалуйста проверить это LinkКак связать контроллер для загруженного HTML (Angularjs)

вот мой вопрос, как я могу связать контроллер с Page2Controller напечатать некоторые вещи в

{{wat}} 
+0

Вы должны загрузить HTML, а затем использовать [ '$ compile'] (https://docs.angularjs.org/api/ng/service/$compile), чтобы скомпилировать его. –

+0

Где я буду использовать его? – user2764027

+0

Разве это не директива? –

ответ

1

Простой способ использовать $compile в контроллере.

Составляет HTML-строку или DOM в шаблон и создает функцию шаблона, которая затем может использоваться для связывания области и шаблона вместе.

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

Лучший способ заключается в использовании директивы, как в этом ответе: Compiling dynamic HTML strings from database

+0

спасибо, только вопрос, как я могу связать заряженный контроллер я имею в виду: уаг ул = «

{{wat}}
app.controller (» Page2Controller «функция ($ сферы) { });»; – user2764027

+0

Я не уверен, что понял вопрос. 'Я привязываю загруженный контроллер'? Что вы подразумеваете под 'bind'? –

Смежные вопросы