自从升级到Angular 1.3后,$ compile工作不起作用

时间:2015-05-31 11:59:45

标签: angularjs migration

我已升级到Angular 1.3.15并且以下代码停止正常工作:

var newScope = $scope.$new();
angular.extend(newScope, data);
var html = '<ng-include src=\'"' + templateUrl + '"\'></ng-include>';
var newHtml = $compile(html)(newScope);

$compilenewHtml的数据为data: " ngInclude: undefined "。 我试图查看可能已经在1.2或1.3中发生的变化,但没有发现任何相关的变化。

想法?

[编辑]

在线阅读更多示例后,例如:https://github.com/angular/angular.js/issues/4505

我看到当我使用旧的AngularJS版本运行此代码时,我获得了ng-include.ng-scope的返回元素,而新版本我获得comment。 如果它添加了2个元素 - 评论和ng-include,那么它是有意义的,但它不是,只是评论。 不知道如何从这里继续

1 个答案:

答案 0 :(得分:0)

不太清楚为什么,但我通过动态创建div元素,注入其html并将其传递给$ compile来解决它。

像这样:

var html = "<ng-include src=\"'" + templateUrl + "'\"></ng-include>";
var div = $('<div>');
div.html(html);
var newHtml = $compile(div)(newScope);