我正在尝试按顺序保存2条记录,并使用第一条记录的id作为第二条记录中的引用。所以这就是它的样子......
dept = {id: 1, name:"First"}
student = {name: "a", dept_id: 1}
现在我有学生表格,我可以选择或创建一个新的部门。 我的控制器看起来像这样
.controller('StudentCtrl', ['$scope', 'Student', 'Department'], function($scope, Student, Department){
$scope.saveStudent = function (){
getDeptId($scope.deptName);
var o = new Student({
name: $scope.name,
dept_id: $scope.deptId
});
}
var getDeptId = function(name) {
index= _.findIndex($scope.depts, {name:name})
if(index === -1) {
// new record
Department.save({name:name}, function(d){
$scope.deptId= d["id"]
})
}
else{
//existing record
}
}
});
但$ scope.deptId始终为null。
请注意我是Angularjs的新手,非常感谢任何帮助。 :d
答案 0 :(得分:0)
通过查看代码,您的Department.save可能是异步的。
你可以尝试这样的事情(见下文)吗?
src
我不知道剩下的代码,但我认为你应该根据你的需要称之为“承诺”。我只是想告诉你,你必须等待“Department.save”从服务器返回,直到你设置dept_id。
我还没有测试,因为我也是新手。希望它能帮到你! :)