我正在使用Angular服务。这是我的服务:
# Favorite items of user
has_many :favorite_items # just the 'relationships'
has_many :itemfavorites, through: :favorite_item, source: :item # the actual items the user favorites
我想将 factory.defaultCalendar 复制到 _data 。我用了两种方法:
# Favorited by users
has_many :favorite_items # just the 'relationships'
has_many :itemsfavorited_by, through: :favorite_items, source: :user # the actual users favoriting an item
并且
'use strict';
app.factory('Daytime',function () {
var factory = {};
var _data = {};
factory.defaultCalendar = {
'kerry': {
first: '7,16',
second: '16.05,24',
firstStart: 7,
firstEnd: 16,
secondStart: 16.05,
secondEnd: 24
},
'william' : {
first: '7,16',
second: '16.05,24',
firstStart: 7,
firstEnd: 16,
secondStart: 16.05,
secondEnd: 24
}
};
});
虽然在他们两个之后,我得到_data为undefined。
如何将_data = angular.copy(this.defaultCalendar);
复制到我工厂的另一个变量中?
答案 0 :(得分:1)
使用factory.defaultCalendar = {
您正在将一个对象default
创建为名为factory
的变量。
因此,使用_data = angular.copy(this.defaultCalendar);
并不简单,因为您的defaultCalendar
对象位于变量 factory
内,完全不同< / strong>来自this.
参考。
更改您的_data = angular.copy(this.defaultCalendar);
到
_data = angular.copy(factory.defaultCalendar);
。
整个代码可以更改为:
app.factory('Daytime',function () {
var factory = {};
factory.defaultCalendar = {
'kerry': {
first: '7,16',
second: '16.05,24',
firstStart: 7,
firstEnd: 16,
secondStart: 16.05,
secondEnd: 24
},
'william' : {
first: '7,16',
second: '16.05,24',
firstStart: 7,
firstEnd: 16,
secondStart: 16.05,
secondEnd: 24
}
};
var _data = angular.copy(factory.defaultCalendar); //changed position, and 'this' to 'factory'
});
答案 1 :(得分:1)
你不能在工厂使用这个参考,你应该直接写
this.Users
您可以参考不同角度提供者here
的文档答案 2 :(得分:0)
您需要在工厂内返回factory
变量。