我有一个使用Angular的简单应用程序,它以Tastypie REST资源为基础。
我有一个使用工厂定义的资源:
app.factory("Task", function($resource) {
return $resource("/api/v1/task/:id/", {scheduling: '@scheduling', meta_only: '@meta_only'});
});
和一个具有多个功能的简单控制器:
app.controller("TasksController", function($scope, Task){
Task.get(function(data){
$scope.tasks = data.objects;
});
$scope.markAsDone = function(task){
task.is_done = true;
task.$save();
}
}
View有一个简单的ng-repeat of tasks和一个复选框,它在ng-change上调用markAsDone(task)。还有其他几个类似的简单函数。
现在我不时会收到错误说" undefined不是函数"当我调用任务时。$ save()。我无法弄清楚我何时以及为什么这样做,并且没有得到此错误,因为它有时会按预期工作。我确实设法记录了#34;任务"在两种情况下的函数中,当错误发生时,它是一个对象,当它没有时,它具有Angular使用的所有这些属性和函数。
我错过了什么?
答案 0 :(得分:0)
添加支票
$scope.markAsDone = function(task){
if(typeof task !== undefined){
task.is_done = true;
task.$save();
}
}