1

我正在尝试创建一个自定义的 AngularJS 重复指令,因为 ngRepeat 在这种特殊情况下不适合我的需求,我正在创建一种基于 Angular 指令的模板语言,而且我不能自由地创建 DOM元素。

特别是,这些是我在使用 ngRepeat 时遇到的问题,我正在努力解决:

  • 我需要中继器元素成为被重复元素的父级
  • 重复的元素有不同的模板,我不能使用包装元素或 ngSwitches 来提供不同的标记

我创建了一个自定义指令,应该:

  • 清空中继器 DOM 元素
  • 观察当前作用域并在每次调用时循环遍历数组,每次迭代创建一个新的 DOM 元素,并使用子作用域编译元素
  • 保持整个东西绑定到模型

这种方法的问题是我正在创建一个无限循环(我得到 10 $digest 错误),因为我正在修改每个范围 $watch fn 调用的范围(创建子范围)。

我该如何解决这个问题?我尝试查看 ngRepeat 源,但这对我来说很难理解......

附带问题:一个小问题(目前)是每次修改范围时重新渲染整个事物的性能......为数组的添加,删除和更新项目实施不同的操作有多困难?

4

0 回答 0