0

내 레일의 각도 앱에 angularjs-rails-resource을 사용하고 있습니다.Angularjs Rails 컨트롤러에서 리소스 저장() 기능이 작동하지 않습니다.

계정 자료

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의 저장 기능이 작동하지 않는 이유가 확실하지 않습니다. 나는 똑같은 일을했지만 거기에서 일하고 있었다. 어떤 단서가 도움이 될 것입니다.

답변

1

실제로는 빈 javascript 개체에 대해 save() 메서드를 호출하고 있습니다. 나는 요점을 여기에서 보지 않는다.

어쨌든 Angular 객체가 필요합니다. 따라서 서버에서 계정 데이터를로드하십시오. 프롬프트에 도움을

$scope.accounts = Account.query(); // Will be an Array of accounts 

또는 계정의 새 인스턴스를 만들

$scope.account = new Account(); // An empty object 
+0

덕분에, 그것은 나의 실수, 내가 선을 잃어 버렸어요. – Senthil