Javascript 角度-将工厂变量复制到专用变量
我用的是角度服务。这是我的服务:Javascript 角度-将工厂变量复制到专用变量,javascript,angularjs,Javascript,Angularjs,我用的是角度服务。这是我的服务: 'use strict'; app.factory('Daytime',function () { var factory = {}; var _data = {}; factory.defaultCalendar = { 'kerry': { first: '7,16', second: '16.05,24', firstStart: 7,
'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
}
};
});
我想将factory.defaultCalendar复制到_数据。我使用了两种方法:
_data = angular.copy(this.defaultCalendar);
及
虽然在这两个之后,我得到了未定义的_数据
如何将
factory.defaultCalendar
复制到我工厂中的另一个变量中?您需要在工厂内返回factory
变量。您需要在工厂内返回factory
变量。使用factory.defaultCalendar={
您正在将对象default
创建到名为factory
的变量中
因此,使用\u data=angular.copy(this.defaultCalendar);
不会简单地起作用,因为您的defaultCalendar
对象它位于变量工厂
内,这与此引用完全不同
解决方案
更改您的\u data=angular.copy(此.defaultCalendar);
到
\u 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'
});
使用factory.defaultCalendar={
您正在将对象default
创建到名为factory
的变量中
因此,使用\u data=angular.copy(this.defaultCalendar);
不会简单地起作用,因为您的defaultCalendar
对象它位于变量工厂
内,这与此引用完全不同
解决方案
更改您的\u data=angular.copy(此.defaultCalendar);
到
\u 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'
});
你不能在工厂里使用这种引用,你应该直接写
\u data=factory.defaultCalendar;
您可以参考不同角度提供者的文档您不能在工厂中使用此参考,您应该直接编写
\u data=factory.defaultCalendar;
您可以参考不同角度提供程序的文档在该函数中,您需要返回工厂
,否则服务只是未定义?\u data=factory。默认日历
应该在这里测试过:在该函数中,您需要返回工厂
,否则服务只是未定义?>_data=factory.defaultCalendar
我应该在这里测试:我可以在哪里使用它?我可以在哪里使用它?