我有一个显示弹出窗口的AngularJS页面。使用AJAX调用从服务器动态检索弹出窗口的HTML。这个动态HTML包含一个新的控制器和控制器所需的AngularJS代码。 仅当父页面中存在子页面JavaScript代码时,此代码才有效。 我想将所有子页面代码保存在子页面中。
有人可以指出我做错了吗?
<div id="mainPage" ng-controller="mainController">
Contains a table that displays a bunch of rows.
</div>
<div id="popup">
Dynamic HTML retrieved from AJAX goes here.
</div>
<script type="text/javascript">
angularMainApp.controller('mainController', ['$scope', '$http', '$compile', function ($scope, $http, $compile)
{
$scope.activateView = function(ele)
{
$compile(ele.contents())($scope);
$scope.$apply();
};
$scope.buttonClick = function()
{
$("#popup").html( dynamicHTMLThroughAJAX );
$scope.activateView($("#divCreateTemplatePopup"));
return;
}
return;
}]);
</script>
<div ng-controller='childController'>
Some HTML here.
</div>
<script type="text/javascript">
angularMainApp.controller('childController', ['$scope', '$http', function ($scope, $http)
{
}]);
</script>
答案 0 :(得分:0)
Angular需要知道您更改了内容并意识到它应该自行更新。
所以,你要做的就是给那些将观察者和其他东西应用到当前DOM中的人。
为此,您将使用$scope.$apply();
。通过调用此函数,您可以强制角度将观察者和其他内容添加到DOM中,现在它也可以与您一起使用新内容。
我建议你阅读angularjs中的摘要,看看它是如何工作的。 这里有一些关于你的问题的链接,以便更好地看到问题:
祝你好运,玩得开心。