同一数组(AngularJS)中的javascript对象之间的一对一关系
One-to-one relationship between javascript objects in same array (AngularJS)
我希望在同一数组中的两个对象之间设置关系,目的是注意一个任务必须先完成,然后另一个任务才能开始。我尝试使用AngularJS的ng-options指令,使用ng-model将子对象设置为父对象的属性。这成功地将属性设置为对子对象的引用(例如,编辑子对象将使更改显示在父对象中,而不仅仅是复制它(。
现在我面临两个问题:
- 在会话之间重新创建数组 - 我将把数据存储在数据库和/或本地存储中。我可能需要为每个对象和查找存储一个唯一的 ID,并在加载序列期间将其设置为属性。这是最好的方法吗?Angular 的 $$hashkey 美元私有属性是否适合这样做,或者我应该为这些对象制作自己的"主键"?(无论如何,我最终必须这样做(
- 将子对象设置为父对象的属性固然很好,但是如果我在子对象上并想要查找父对象怎么办?这是否只是遍历数组中的所有内容并找到匹配的 ID 的问题?
谢谢
最好的方法是使用 Angular 框架处理绑定中的关系 - 在视图中创建一个递归模板,并在 javascript/typescript 中创建一个视图绑定到的模型。
这是通过使用 ng-template 指令作为父 html 视图中的脚本来完成的。
您可能需要通过在控制器中设置属性并将其绑定到模型来对其进行一些自定义。显示/不显示某些控件的一个示例是使用基于父模型值的 ng-if 指令。
所需 html 的示例是:
<script type="text/ng-template" id="recursiveTemplate">
<ul>
<li ng-repeat="field in record.fields" ng-include="'recursiveTemplate'">
</li>
</ul>
</script>
<ul ng-controller="childCtrl">
<li ng-repeat="field in records" data-ng-include="'recursiveTemplate'">
</li>
</ul>
您可以通过搜索有关递归模板的先前响应来了解有关堆栈溢出的更多信息。
例如:堆栈溢出 关于递归模板的先前答案
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- JavaScript中的函数和对象之间没有区别吗?
- 在控制器和数据对象之间同步数据
- Javascript-defineProperty和直接在对象上定义函数之间的区别
- XMLHttpRequest对象的open()和send()方法之间有什么区别
- Firefox插件SDK:在侧边栏和主脚本之间通信对象
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- Angular 2,在没有直接关系的两个组件之间共享一个对象
- 尝试在一个对象的值和一个对象数组之间进行匹配
- 在angularJS中使用模态窗口时,在控制器之间共享对象数组
- 快递之间的区别.路由器() vs 多个 express() 对象
- 节点模块对象范围:在所有函数之间共享一个对象
- 在不同数据选项之间循环迭代对象
- 在 JavaScript 中的对象内分配柯里函数时,这和 self 之间有什么区别吗?
- 不同对象之间的递归,并将它们唯一地组合在一起,不重复
- 两个对象之间的Javascript原型
- 什么's对象文字中带引号和不带引号的键之间的区别
- 只有一些带undercore.js的字段在对象数组之间求交集和等于
- 用户如何获取两个时间戳之间的对象
- 在window.onload之前/之后创建对象之间的区别