首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅在通过ajax加载的页面中使用Angular

仅在通过ajax加载的页面中使用Angular
EN

Stack Overflow用户
提问于 2013-06-03 22:18:06
回答 2查看 3.7K关注 0票数 8
代码语言:javascript
复制
<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>

我对angular是个新手,所以请温文点!

所以这个想法就像上面的标题所说的--我用head部分中包含的angular库加载我的页面。稍后,我使用ajax (jquery)将数据(如下所示)加载到div容器中。

代码语言:javascript
复制
<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>

我想以某种方式初始化的角度,只有在#angular-test容器内ajax请求完成后才是活动的。我假设它与作用域对象有关,对吧?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-04 03:59:31

一旦DOM完成加载(在DOMContentLoaded事件上),Angular就会进行初始化(包括查找ng-app和模板编译)。一旦接收到AJAX响应,Angular就无法知道DOM是否发生了更改,并且稍后会将ng-app添加到DOM中。

因此,您可以尝试在DOM真正完成之后手动初始化引导程序(即在将DOM赋值给innerHTML之后,在jquery ajax回调上)。在回调中,执行类似如下的操作:

代码语言:javascript
复制
  angular.bootstrap($('#ajax-content-here'));

假设ajax-content-here中的内容引用了一些ng-app。请参阅http://docs.angularjs.org/guide/bootstrap中的手动初始化部分

票数 9
EN

Stack Overflow用户

发布于 2013-06-03 22:36:10

代码语言:javascript
复制
<div ng-app id="angular-test">

ng-app部件将在angular-test内部初始化angular。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16898931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档