訪問私有變量我寫了下面的工廠: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
您是否知道爲什麼我的用戶標識在日誌3中未定義?
感謝
我來自C++和Java。我在JavaScript中使用範圍非常困難,在JS中看起來更難以理解...... –