自从升级到 Angular 1.3 后,$compile 就无法正常工作
$compile not working ever since upgraded to Angular 1.3
我已经升级到 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);
在$compile
之后newHtml
的数据是data: " ngInclude: undefined "
。
我尝试查看 1.2 或 1.3 中可能存在的重大更改,但没有找到任何相关内容。
想法?
[编辑]
在线阅读更多示例后,例如此处:https://github.com/angular/angular.js/issues/4505
我看到当我使用旧的 AngularJS 版本 运行 这段代码时,我得到了 ng-include.ng-scope
的 return 元素,而使用新版本我得到comment
。
如果它添加了 2 个元素——评论和 ng-include,那将是有意义的,但它没有,只是评论。
不知道如何从这里继续
不太清楚为什么,但我通过动态创建一个 div 元素解决了这个问题,注入它的 html 并将其传递给 $compile.
像这样:
var html = "<ng-include src=\"'" + templateUrl + "'\"></ng-include>";
var div = $('<div>');
div.html(html);
var newHtml = $compile(div)(newScope);
我已经升级到 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);
在$compile
之后newHtml
的数据是data: " ngInclude: undefined "
。
我尝试查看 1.2 或 1.3 中可能存在的重大更改,但没有找到任何相关内容。
想法?
[编辑]
在线阅读更多示例后,例如此处:https://github.com/angular/angular.js/issues/4505
我看到当我使用旧的 AngularJS 版本 运行 这段代码时,我得到了 ng-include.ng-scope
的 return 元素,而使用新版本我得到comment
。
如果它添加了 2 个元素——评论和 ng-include,那将是有意义的,但它没有,只是评论。
不知道如何从这里继续
不太清楚为什么,但我通过动态创建一个 div 元素解决了这个问题,注入它的 html 并将其传递给 $compile.
像这样:
var html = "<ng-include src=\"'" + templateUrl + "'\"></ng-include>";
var div = $('<div>');
div.html(html);
var newHtml = $compile(div)(newScope);