【问题标题】:Is it possible to use $compile in Angular to create an exportable elem?是否可以在 Angular 中使用 $compile 来创建可导出的元素?
【发布时间】:2014-09-17 12:25:27
【问题描述】:

是否可以创建一个由 Angular 编译的元素/字符串,然后我可以将其发送到 Angular 之外的应用程序的另一部分?

var eventListElem = $compile('<full-event-list></full-event-list>')(scope);

myFuncOutsideOfAngular(eventListElem);

我创建了一个指令 (full-event-list),它从所选范围中获取一个事件列表并在其上重复并创建我的 HTML(在我的 Angular 应用程序中工作)。

但是当我将 eventListElem 发送到应用程序的旧 jQuery 部分时,它只会在 DOM 中呈现 [Object object]。我试图做 $(eventListElem) 和 eventListElem.html(),但没有运气。看起来 $compile 创建了一个 Angular 特定对象,我无法将其转换为 HTML 字符串或 jQuery 对象。

有什么想法吗?

【问题讨论】:

  • 生成的 HTML 应该是什么样子?
  • 你用的是什么浏览器?
  • 我希望/必须支持 IE9+、FireFox 和 Chrome。
  • 是的,但是您目前使用什么浏览器遇到此问题?

标签: jquery angularjs angularjs-directive


【解决方案1】:

试一试:

var eventListElem = angular.element('<full-event-list></full-event-list>');
$compile(eventListElem)(scope);
scope.$digest();
myFuncOutsideOfAngular(eventListElem);

因为 angular.element() 是 jQuery 的别名,如果加载了 jQuery,它可能会工作。

【讨论】:

  • 我对这个解决方案的第一次测试没有成功。我会看看我是否可以用我想要实现的目标制作一个 plunker。
  • 尝试滑动摘要();在 $compile(...) 之后,这将确保链接函数已经运行。查看更新以发布。
猜你喜欢
  • 1970-01-01
  • 2019-01-27
  • 2019-06-18
  • 2023-02-04
  • 2014-12-11
  • 2021-05-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多