访问私有变量我写了下面的工厂: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中看起来更难以理解...... –