我在我的Rails Angular App中使用angularjs-rails-resource。
帐户资源
myApp.factory('Account', ['railsResourceFactory','railsSerializer', function
(railsResourceFactory,railsSerializer) {
return railsResourceFactory({
url: '/accounts',
name: 'account',
serializer: railsSerializer(function () {
this.nestedAttribute('address');
})
});
}]);
UserController.js
function userController($scope,$location,Auth,$rootScope,$http,Useraccount,Account) {
$scope.profileUpdate = function() {
//Useraccount.save(); // THIS WORKS
$scope.account = {}
$scope.account.save() // Throwing error : undefined function save
}
}
UserAccount服务
myApp.service('Useraccount',function(Auth,$location,$rootScope,Account){
var account;
var query = function(){
var promise = Account.query().then(function (results) {
account = results;
}, function (error) {
alert("Went Wrong while fetching User Account!!")
});
return promise;
}
var save = function() {
account.save().then(function (results) {
console.log(results);
}, function (error) {
alert("Went Wrong!!")
});
}
return {
query:query,
save:save
}
})
});
我不确定为什么UserController的save函数不起作用,虽然我已将Account资源导入为依赖项。我在服务中做了同样的事情,但它在那里工作。任何线索都会有所帮助。
答案 0 :(得分:1)
您实际上正在为空的javascript对象调用save()
方法。我不明白这一点。
无论如何,你需要一个Angular对象来做到这一点。因此要么从服务器加载帐户数据。
$scope.accounts = Account.query(); // Will be an Array of accounts
或创建帐户的新实例
$scope.account = new Account(); // An empty object