通过 Ajax 注入时未运行的角度代码
Angular code not running when injected via Ajax
我对Angular很陌生,因此找到了自己的方式。
我知道ng控制器将在页面加载上运行。角度HTML元素将根据ng-controller的操作进行更新。
我想通过 AJAX 注入我的 html 代码,它由 ng 控制器组成。这意味着这将在页面加载后注入。
我注意到我的角度代码没有被执行。有没有办法重新初始化角度?或者注册新控制器并运行它?
问题是 Angular 无法识别您使用 jquery 进行的任何 dom 操作。例如附加到 dom 等。
您需要编译并链接要以这种方式注入的任何 html。我会说你想使用指令来做到这一点。
示例代码(如果您从控制器内执行此操作)
var template = '<div ng-repeat="a in [1,2,3,4]">{{a}}</div>'
var element_to_add = angular.element(template)
var linkFn = $compile(element_to_add);
linkFn($scope);
var target_element = $(css_selector)
target_element.html(element_to_add)// or target_element.append(element_to_add)
但就像我说的,从控制器附加到 dom 不是一个好主意。在指令中执行此操作。
虽然这可能不是您正在寻找的确切解决方案,但我相信这可能是一个足够接近的解决方案;
$routeProvider
.when('/customers',
{
templateUrl: '/app/views/template.html',
resolve: resolveController('/app/controllers/dynamicController.js')
});
相关文章:
- 如果此代码运行,请执行代码
- JavaScript游戏引擎——编辑器中的代码运行:)检查器中的错误
- JavaScript中的逗号运算符:应为语法错误,但代码运行正常
- 代码运行时出现问题
- Socket.IO:重新连接导致服务器连接代码运行两次
- 代码运行时的类型检查
- 将页面控件添加到数据表,但当代码运行时,页面中不显示任何内容
- if 语句中的一部分 JavaScript 代码运行,而同一块中的其余代码不执行.我在这里错过了什么
- JS代码运行非常慢
- 阻止其他代码运行,直到 AJAX 请求返回某些内容
- JS代码运行到无限循环
- Javascript游戏代码运行非常慢
- chrome扩展///我的代码运行了不止一次
- 我的代码运行在jsfiddle上,但为什么不能't在本地计算机上
- Javascript parseInt-代码运行4次
- 如何从Visual Studio代码运行我的电子项目
- 检查显示:CANNON不是使用CANNON.js+Webstorm 8.0.1定义的(但代码运行良好)
- 为什么slice()显示错误,但代码运行良好
- 代码运行后字符串发生更改
- JQuery函数代码运行不正常