Извините, если название озадачило, я создаю веб-приложение, которое позволяет пользователю добавлять задачи и подзадачи. Мне удалось сделать угловой, чтобы получить задачи из базы данных (mongodb) и показать результат в моемфайл dashboard.html.Но у меня проблемы с подзадачами.У меня есть кнопка для каждой задачи, и при нажатии на нее должны отображаться все подзадачи, которые относятся к этой задаче.В текущей ситуации проблема заключается в том, что когда я хочу видеть подзадачи, принадлежащие одной задаче, они отображаются как подзадачи всех моих задач.
My dashboard.html
выглядит следующим образом:
<body ng-app="dashboard">
<div class="container list-group list-group" ng-controller="dashboardCtrl">
<ul ng-repeat="task in tasks" class="list-group-item list-group-item-action">
<li class="list_style">
<span>{{task.name}}</span><span>{{task.description}}</span>
<span><button class="btn btn-danger" ng-click="remove(task._id)">Delete</button></span>
<span><button class="btn btn-info" ng-click="edit(task._id)">Edit</button></span>
<span><button class="btn btn-info" ng-click="addTask(task._id)">Add new task</button></span>
<span><button class="btn btn-success" ng-click="showTasks(task._id)">+</button></span>
</li>
<ul ng-repeat="subTask in subTasks" class="list-group-item list-group-item-action active"
style="margin-top: 10px;">
<li>{{subTask.name}}</li>
<li>{{subTask.description}}</li>
<li>{{subTask.due_date}}</li>
</ul>
</ul>
</div>
</body>
Мой контроллер выглядит следующим образом:
var app = angular.module('dashboard', []);
app.controller('dashboardCtrl', function($scope, $http, $window){
///////Used to get all the tasks from the database
var refresh = function() {
$http.get('api/tasks').then(function(response) {
$scope.tasks = response.data;
console.log("Data retrieved successfully");
console.log(response);
});
};
refresh();
///////Used to get the all the sub-tasks belonging to task with specified id
$scope.showsubTasks = function(id){
$http.get('api/task/'+ id).then(function(response) {
console.log("Data retrieved successfully");
console.log(response);
$scope.subTasks = response.data.subTasks;
});
}
})
И моя схема задачи выглядит следующим образом:
const mongoose=require("mongoose");
const taskSchema=mongoose.Schema({
name:{
type: String,
required: true
},
description:{
type: String,
required: true
} ,
subTasks:[{
name:{
type: String,
required: true
},
description:{
type: String,
required: true
},
due_date:{
type: String,
required:true
}
}]
});
const list = module.exports = mongoose.model("list", listSchema);
Файл index.js:
///// to get the tasks
router.get("/tasks", (req,res)=>{
task.find((err, lists)=>{
res.json(tasks);
})
});
////// to get the sub-tasks from a task with specified id
router.get("/task/:id", (req,res)=>{
task.findOne({_id:req.params.id},'sub_tasks',(err, sub_tasks)=>{
res.json(sub_tasks);
})
});
Я считаю, что проблема в: $scope.subTasks = response.data.subTasks;
, поскольку подзадачи - это массив, из которого происходят подзадачи или куда все подзадачи выдвигаются, когда мы получаем их из базы данных, но я нахожу невозможным найтирешение прямо сейчас.Спасибо.