2013-04-17 88 views
0

我是AngularJS的新手,我的问题是,当我使用资源保存任务时,它将信息正确地发送到数据库。服务器在收到POST时会回应创建的Task的ID。AngularJS getId与资源保存

我有一些像在控制台这个

$scope.save = function(){  
     var retorno = Task.save($scope.task); 
     console.log("Retorno = "+retorno); 
     $scope.tasks.push($scope.task); 
} 

的RETORNO值RETORNO = [目标对象]

的ID来源于这里

def newTask = SecuredAction { implicit request => 
    println("TaskController.newTask") 
    taskForm.bindFromRequest.fold(
     errors => 
     BadRequest(views.html.tasks(request.user, Task.all(request.user.id.id), errors, errors)), 
     _publicTask => { 
     val id = Task.create(_publicTask.label,request.user.id.id, _publicTask.date) 
     //Redirect(routes.TaskController.tasks()) 
     id match{ 
      case Some(_id) => Ok(_id.toString).as("application/json") 
      case None => Ok("error") 
      case _ => Ok("ERROR") 
     } 
     } 
    ) 
    } 

它返回这样的事情

516e750ee4b0230023ba5acc

那么,我该如何在控制器中处理这个返回。 顺便说一句,我想这是因为当我推动任务时,它没有ID,使得不刷新页面就不可能删除。

回答

0

Angular docs on $resource指出

意识到调用$资源对象方法立即返回一个空引用(对象或数组取决于IsArray的)是很重要的。一旦从服务器返回数据,现有参考将填入实际数据。

所以不是

var retorno = Task.save($scope.task); 
$scope.tasks.push($scope.task); 

你应该这样做回调的方式

var retorno = Task.save($scope.task, function() { 
    // here retorno should already have ID in it 
    // and you may want to set it to a task 
    $scope.tasks.push($scope.task); 
}); 
+0

VAR RETORNO = Task.save($ scope.task,功能(数据){ 的console.log( “Retorno =”+ retorno); console.log(“DATA =”+ data); $ scope.task._id = retorno; $ scope.tasks.push($ scope.task); }); console.log(“Retorno =”+ retorno); retorno和数据都给出了一个[Object object] – Ruben

+0

用console.log(“xx”,y)替换console.log(“xx”+ y)并查看实际从服务器获得的内容(console.log接受多个参数console.log(“xx”,y,z,s,t)也可以)。 – kompot

+0

资源{0:“5”,1:“1”,2:“6”,3:“e”,4:“9”,5:“7”,6:“0”,7:“f” 8:“e”,9:“4”,10:“b”,11:“0”,12:“2”,13:“3”,14:“0”,15:“0”,16 :“2”,17:“3”,18:“b”,19:“a”,20:“5”,21:“a”,22:“e”,23:“d”功能,$保存:功能,$查询:功能,$删除:功能,$删除:功能...} 0: “5” 1: “1” 2: “6” 3: “e” 的 4: “9” 5: “7” 6: “0” 7: “F” 8: “e” 的 9: “4” 10: “b” 的 11: “0” 12:“2 “ 13:”3“ 14:”0“ 15:”0“ 1 6: “2” 17: “3” 18: “b” 的 19: “一” 20: “5” 21: “一” 22: “e” 的 23: “d” __proto__:资源 我得到了正确的ID,但分开了,可能是字符。我怎么把它们放在一起? – Ruben