1
刪除對象(我很新的角度和相當新的編碼,所以請原諒我,如果我的問題似乎沒那麼亮。)Angularfire從查找列表
我的項目和任務列表。我可以將任務添加到項目中並在項目組件中的表中迭代它們(通過使用非規格化查找表)。但我無法弄清楚如何使用projectTasks表中每行迭代的按鈕從項目中刪除它們。
Plnkr:http://plnkr.co/edit/BSAYL6PfLLCQ7xXWIo2N?p=info
項目接口:
export interface Project {
$key: string;
name: string;
projectTasks: {
[key: string]: {
name: string;
assignedTo?: string;
dueDate?: String;
estTime?: String;
}
};}
任務界面:
export interface Task {
$key: string;
name: string;
assignedTo?: string;
dueDate?: string;
estTime?: string; }
添加任務功能:
//(selectedTask: Task, projectTasks = [];)
addTask() {
this.project.projectTasks[this.selectedTask.$key] = {
name: this.selectedTask.name,
assignedTo: this.selectedTask.assignedTo ? this.selectedTask.assignedTo : 'N/A',
dueDate: this.selectedTask.dueDate ? this.selectedTask.dueDate : 'N/A' ,
estTime: this.selectedTask.estTime ? this.selectedTask.estTime : 'N/A' ,
};
this.setProjectTasks();
設置項目任務功能:
setProjectTasks() {
if (this.project.projectTasks == null) {
this.project.projectTasks = {};
}
this.projectTasks = Object.keys(this.project.projectTasks)
.map(key => this.project.projectTasks[key]);
}
刪除任務功能:(刪除整個任務節點)
removeTask(task) {
this.taskService.removeTask(task)
.then(_ => this.router.navigate([`ww/task-list`]));
}
任務服務刪除任務:
removeTask(task) {
return this
.tasks$
.remove(task.$key)
.then(_ => alert('Task Successfully Deleted'))
.catch(error => console.log(error));
我可以在下拉迭代分配的任務所顯示和我需要找到一個邏輯,使用Remove按鈕使用null值更新addedTask,而不必刪除實際的任務節點。
<div class="form-group row">
<label for="remove-row">Remove Tasks From Project</label>
<md-select placeholder="Select a Task" [(ngModel)]="selectedTask">
<md-option *ngFor="let projectTask of projectTasks" [value]="projectTask">
{{projectTask.name}} </md-option>
</md-select>
<button class="btn btn-primary"
(click)="removeProjectTask(projectTask)">Remove From Project</button>
'removeProjectTask(TASKNAME:串){常量taskKey = Object.keys(this.project.projectTasks).find(密鑰=> {返回this.project.projectTasks [鍵]。名稱===此。 '; '刪除this.project.projectTasks [taskKey]; this.setProjectTasks();}' 正在爲我工作。 – ReturnTable