からのアクセスプライベート変数私は、次の工場を書いた:AngularJS工場 - メソッド
.factory('UserFact', function() {
var user = [];
return {
'setUser': function(user) {
this.user = user;
console.log('(1) User set: ' + this.user);
console.log('(2) User id is now: ' + this.user.uid);
},
'updateSport': function(sportid) {
console.log('(3)Update sport ' + sportid + 'for user id ' + this.user.uid);
}
}
は私のコントローラでそれを次の方法を使用します。
function ($scope, $stateParams, DatabaseFact, UserFact) {
// variables
$scope.sports = [];
$scope.sports = DatabaseFact.getSports();
// functions
$scope.updateSport = UserFact.updateSport;
// execution
UserFact.setUser({uid: '123456', name: 'forrest'});
}
のリストを私の見解から、それをトリガートリガーボタン:
updateSport(sport.id)
私の問題は、コンソールログで次のように表示されることです。
(1) User set: [Object] Object
(2) User id is now: 123456
(3) Update sport 1 for user id undefined
私のユーザーIDがログ3で定義されていない理由は知っていますか?
おかげ
私はC++とJavaから来ています。 JSで理解するのがずっと難しいJavascriptのスコープで本当に苦労しています... –