Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 消除在创建数千个具有角度的监视范围时相互引用的模型_C#_Angularjs - Fatal编程技术网

C# 消除在创建数千个具有角度的监视范围时相互引用的模型

C# 消除在创建数千个具有角度的监视范围时相互引用的模型,c#,angularjs,C#,Angularjs,我目前有一个数据库系统,由三个模型组成。让我们称这些模型为成员、职位和团队。建立模型时,成员可以参考职位(对于一个成员可以被分配到一个或多个职位),团队也可以参考职位(因为团队可以被分配到一个或多个职位),而职位又可以参考两个成员(可以被分配到职位的成员)和团队(同样,可以为其分配多个职位)。我有在所有不同级别编辑这些职位的功能 我的问题是关于我当前在“成员”部分中拥有的作用域的数量。我使用一个简单的ng repeat列表从我的服务器(目前大约有30个成员)填充数据。我在页面上有大约7500个作

我目前有一个数据库系统,由三个模型组成。让我们称这些模型为成员、职位和团队。建立模型时,成员可以参考职位(对于一个成员可以被分配到一个或多个职位),团队也可以参考职位(因为团队可以被分配到一个或多个职位),而职位又可以参考两个成员(可以被分配到职位的成员)和团队(同样,可以为其分配多个职位)。我有在所有不同级别编辑这些职位的功能


我的问题是关于我当前在“成员”部分中拥有的作用域的数量。我使用一个简单的
ng repeat
列表从我的服务器(目前大约有30个成员)填充数据。我在页面上有大约7500个作用域,因为成员引用了同时引用成员和团队的位置,而这些位置又引用了位置,等等,直到我完全耗尽了我的成员/位置/团队模型。我已经为此工作了几天,并试图避免创建三个新的“临时模型”仅适用于本页。是否有处理相互引用的多个模型的标准?

正如jlowcs所建议的,之所以出现400错误是因为我在通过控制器传递数据的按钮的父类上放置了ng if


经过那里——我发现我的性能问题在很大程度上得到了解决,用
ng if
标记替换我的
ng show
标记。我一直在研究为什么将
ng if
更改为
ng show
最终会删除7000多个
$scope
'd变量(大部分是重复的变量),并没有给出一个明显易懂的解释。

一次性绑定是一种解决方案吗?可能您显示所有数据的方式可以改变?变得更简单?您是否将所有内容都显示为一棵树?可能您可以使用ng if仅在用户需要时显示子数据,使用折叠/扩展策略?谢谢响应。一次性绑定不是解决方案,因为表功能允许对其进行操作。不幸的是,我显示数据的方式也必须保持不变。我确实相信模型/控制器可以变得更简单,但这超出了允许我做的范围。我尝试了
ng if
,效果很好,但是,当试图将更改发布到数据库时,我每次都会发现400个错误。我能够减少我的团队选项卡(填充有成员\职位)减少到大约300个作用域变量,尽管我认为这在很大程度上是偶然的。我不认为使用
ngIf
与400个错误有什么关系。您可能应该调查这一部分。除此之外,您可以在不需要监视程序时禁用它们,在您想要更新特定模型时启用它们。这需要对Angular的摘要过程进行了一些调整,并且很好地理解了它的工作原理。基本上,你可以从任何作用域中删除观察者,保存它们,然后在需要时重新设置它们。我最近基于这个想法实现了一个优化的ngRepeat。从本质上说,我有一个作用域,它是一个最终看起来像这样的模型:
Member.Positions[].Teams[].Positions[].Members[].Positions[]
因为多个模型链接在一起的方式,如果从dom中删除元素(及其监视值),则会在条件更改时以重新创建元素为代价。ng show会保留dom元素,但也必须不断更改任何监视值。