我了解 Angular 控制器和指令的基本功能,但我正在努力了解如何最好地应用它们来包装我们使用的 Dynatree 树小部件。
问题是 Dynatree 通常有自己的方式通过 ajax 检索数据并填充自身 - 通常您通过调用其“appendAjax”方法将数据附加到特定树节点来执行此操作 - 即它的全部操作。
我知道我可以分离对 Ajax 方法的调用并将其放置在控制器中,将 ajax 调用的结果存储在我自己的树对象中 - 然后我可以在我的指令中观察该树对象的更改,然后手动更新 Dynatree 小部件. 但是我正在处理的树数据庞大而复杂,当 dynatree 已经拥有自己的树结构时,必须在控制器中维护自己的树结构似乎相当低效。
我的感觉是,在这种情况下,我真的不需要控制器,相反,我可以将 Dynatree 包装在一个指令中,并基本上按照我一直使用它的方式继续使用它,但这似乎不起作用 - 而这个可能是我缺乏关于指令的 Angular 知识的地方。所以我有几个问题:
1] 在指令中进行任何类型的 ajax 调用是否被认为是不好的做法?
2] 如果是这样,我应该如何包装这个喜欢以某种方式做事的第 3 方控件?我真的需要在我的控制器中维护我自己的重复树结构吗?
3] 如果认为可以在指令中进行 Ajax 调用,我如何确保 ajax 方法在指令中运行?(我假设这是我的问题的原因)