Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.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
AngularJs ng是否重复刷新jQuery隐藏元素的“数据缓存”?_Jquery_Angularjs - Fatal编程技术网

AngularJs ng是否重复刷新jQuery隐藏元素的“数据缓存”?

AngularJs ng是否重复刷新jQuery隐藏元素的“数据缓存”?,jquery,angularjs,Jquery,Angularjs,我在AngularJs中构建了一个类似电子表格的对象,使用了一个类似表格的结构显示数据和一个输入元素,该元素在表格单元格中移动,并替换应该具有焦点的单元格。“我的设置”包括一个ng repeat,它从一个取消绑定的数据结构中显示表中的每一行。当用户单击某个单元格时,将隐藏该单元格的坐标,并将输入元素移动到该单元格的坐标,并使用“显示”和“隐藏”显示。我已经在我的项目中加载了jquery 要删除行,我将隐藏输入元素并允许用户选择要删除的行。这会更改ng repeat的数据源,因此它会重新显示该表

我在AngularJs中构建了一个类似电子表格的对象,使用了一个类似表格的结构显示数据和一个输入元素,该元素在表格单元格中移动,并替换应该具有焦点的单元格。“我的设置”包括一个ng repeat,它从一个取消绑定的数据结构中显示表中的每一行。当用户单击某个单元格时,将隐藏该单元格的坐标,并将输入元素移动到该单元格的坐标,并使用“显示”和“隐藏”显示。我已经在我的项目中加载了jquery

要删除行,我将隐藏输入元素并允许用户选择要删除的行。这会更改ng repeat的数据源,因此它会重新显示该表

当重新播放ng repeat中的行后,如果我试图在特定位置显示输入元素,我会发现该元素无法显示

阅读jquery hide的文档时,它说:

这大致相当于调用.css display,none,只是display属性的值保存在jQuery的数据缓存中,以便以后可以将display恢复为其初始值

当使用.hide隐藏输入单元格,然后我从数据源中为ng repeat删除行时,我发现语句angular.element'table-input-cell返回一个长度为0的数组,建议从jQuery的数据缓存中删除this元素,这可能是触发ng repeat重新迭代集合的副作用

我不确定这是不是真的发生了什么,但我能说的是,我通常可以在输入元素被隐藏后显示它,除非我删除行,然后angular.elementtable-input-cell返回0长度数组,因此可以预测,angular.elementtable输入单元格.show`不会使输入单元格在页面上可见


有没有办法在代码中重新创建输入单元格并插入到文档中,这样我就可以保留对隐藏单元格的访问权,以便再次显示它?

将jQuery DOM操作与AngularJS框架混合使用会带来麻烦。请参阅。使用隐藏元素。好的,我可以这样做,只是想知道,由于这个表可能有1000多个单元格,因此angularjs检查每个单元格是否有ng hide=isHidden[some id]之类的内容的开销似乎会在每个周期进行大量检查。也许angular足够聪明来避免这种情况?或者这不是问题?