Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.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
Ember.js:可以添加/删除记录,但删除的记录仍显示_Ember.js_Ember Data - Fatal编程技术网

Ember.js:可以添加/删除记录,但删除的记录仍显示

Ember.js:可以添加/删除记录,但删除的记录仍显示,ember.js,ember-data,Ember.js,Ember Data,在我正在构建的Ember应用程序中,我的一个视图是一个文件管理器,其中有一行文件列表,与用户有很多关系。在代表单个文件的每一行的末尾,我有一个删除按钮 当我运行应用程序并转到文件视图时,它正在通过数据存储使用API中的文件填充列表。我还能够将文件拖放到视图中,并将其成功添加到数据存储中,同时更新视图以显示新行/文件 我正在尝试添加删除文件的功能。我的问题是:当我单击删除文件时,调用.deleteRecord(),数据库API提供的任何文件都将从模型/数据存储中删除,并且视图将更新。但是,我拖放的

在我正在构建的Ember应用程序中,我的一个视图是一个文件管理器,其中有一行文件列表,与用户有很多关系。在代表单个文件的每一行的末尾,我有一个删除按钮

当我运行应用程序并转到文件视图时,它正在通过数据存储使用API中的文件填充列表。我还能够将文件拖放到视图中,并将其成功添加到数据存储中,同时更新视图以显示新行/文件

我正在尝试添加删除文件的功能。我的问题是:当我单击删除文件时,调用.deleteRecord(),数据库API提供的任何文件都将从模型/数据存储中删除,并且视图将更新。但是,我拖放的任何文件都将从数据存储中删除,但不会从模型中删除(仍显示在数组中),因此仍会显示在列表中

**注意:我还不关心持久性,只是从模型和视图中添加/删除**

下面是我向列表中添加文件的代码(显然有效)

以下是我从列表中删除文件的代码(适用于从数据库加载到存储区的文件数据):

当我删除一个文件(刚刚插入)时,file.get('isDeleted')的上述结果返回true,但该文件仍显示在控制器和模型后面的数组中(通过Ember Inspector),并且不会从视图中直观地消失


有什么帮助吗??谢谢

在您的特定情况下,除非您使用某种智能集合,它知道在属性更改时从自身删除记录,否则存储不会知道从任何随机数组中删除记录。在大多数情况下,您需要手动删除它

删除删除记录的集合中构建的唯一余烬数据是使用store.all和store.filter构建的集合(注意:store.find('type'),不带任何参数,返回store.all)。他们之所以知道要删除它,是因为他们始终只包含未删除的记录

someCollection.removeOjbect(file);
如果您试图将删除的记录提交到后端,则只有在调用
save
后才会发生。如果你想在一次失败中完成,你可以使用
destroyRecord

file.deleteRecord();
file.save();


我还没有试图让删除保持下去,只是从存储中删除记录并将其从模型和视图中删除。再次注意我的问题:从数据库加载的存储中的记录正在使用上述代码删除,添加到视图中的byt记录不会从模型和视图中删除,即使显然已从存储中删除。明白了,除非您使用某种智能集合,知道在属性更改时从自身删除记录,存储不会知道从任何随机数组中删除记录。在大多数情况下,您需要手动删除它。删除已删除记录的集合中内置的唯一余烬数据是使用
store.all
store.filter
构建的集合(注意:
store.find('type')
不带任何参数返回
store.all
)。他们之所以知道要删除它,是因为他们始终只包含未删除的记录。kingpin2k感谢您最后的评论。我添加了代码“this.removeObject(file)”以手动从ArrayController中删除文件对象。成功了。我觉得很奇怪,但你的评论很有帮助。对于我的问题,你上面给出的答案是不正确的,所以如果你再给出一个与你上次评论相关的答案,我会将其标记为正确答案。我可以说出我自己的答案并记下来,但如果没有你的帮助,我是不会得出这个答案的!谢谢总之,我预先准备好了适用的答案。
someCollection.removeOjbect(file);
file.deleteRecord();
file.save();
file.destroyRecord():