<html>
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.js"></script>
</head>
<body>
<div id="ajax-content-here">
</div>
</body>
</html>
我真的很有角度,所以请温柔!
所以这个想法就像上面标题中所说的那样 - 我加载了包含在head部分中的角度库的页面。后来我使用ajax(jquery)将数据(下面)加载到div容器中。
<div id="angular-test">
<div>
<label>Name:</label>
<input type="text" ng-model="yourName" placeholder="Enter a name here">
<hr>
<h1>Hello {{yourName}}!</h1>
</div>
</div>
在ajax请求完成后,我想以某种方式初始化仅在#angular-test
容器内活动的角度。我认为它与范围对象有关吗?
谢谢!
答案 0 :(得分:9)
一旦DOM完成加载(在DOMContentLoaded事件上),Angular会进行初始化(包括查找ng-app和模板编译)。 Angular没有办法知道DOM被更改,并且一旦收到AJAX响应,就会将ng-app添加到DOM中。
因此,您可以尝试在DOM真正完成后手动初始化引导程序(在您分配给innerHTML之后,在您的jquery ajax回调中)。在回调中执行以下操作:
angular.bootstrap($('#ajax-content-here'));
假设ajax-content-here
内的内容引用某些ng-app
。
请查看http://docs.angularjs.org/guide/bootstrap
答案 1 :(得分:0)
<div ng-app id="angular-test">
ng-app
部分将初始化angular-test
内的角度。