我有两个自定义元素指令:
<my-directive-parent></my-directive-parent> //only one
和
<my-directive-child></my-directive-child> //variable count
my-directive-parent
指令在其指令定义对象中定义了自己的控制器和 templateUrl 属性。 my-directive-child
指令有自己的链接,范围, templateUrl 和 require 属性在其< em>指令定义对象。传递给链接函数的第四个参数是父my-directive-parent
的控制器。这是按预期工作的。
根据用户输入,my-directive-child
的实例通过my-directive-parent
的控制器附加到父my-directive-parent
DOM或从中移除my-directive-child
。由于我使用ngView作为顶级页面,因此更改页面会导致Angular自动清理顶级页面的各种指令及其控制器。返回时,页面的控制器重新运行,但用户附加的视图不会显示(因为它们之前已被Angular自动清除)。我正在使用一个服务,该服务包含表示先前添加的my-directive-child
个实例集合的数据。
我的问题在于根据此缓存的服务数据恢复my-directive-parent
指令。目前,当运行my-directive-child
指令的控制器时,我将获得服务数据数组,该数组表示要添加的实例,循环遍历它,以及向DOM添加新的my-directive-child
实例。这是有效的,但是在恢复每个实例时,我需要使用之前由用户输入的数据预先填充它(其中记录在服务中)。目前,当以这种方式添加到DOM时,每个实例都处于“空白”状态而不是所需的预先填充状态。
所以我有重建子指令实例所需的数据,但是我无法用必要的数据预先填充它们。
我尝试在{{1}}上放置一个自定义attr,以便将数据转发到实例的范围,但我从Angular的API文档中了解到:
新范围规则不适用于模板的根目录,因为模板的根目录总是获得新范围
问题:
提前感谢您提出可能导致可靠解决方案的任何想法,答案或想法。