我的工厂包含一些功能和对象。 例如:
angular.module('app').factory('factory', function(){
var that = this;
that.a = function() {that.data = {'id': 100}}
that.b = function(){ ** some code ***}
return { a:that.a, b:that.b, data:that.data };
});
但是,当我从工厂外部('factory.a')访问函数'a'时,创建数据对象:
that.data = {'id': 100}
然后从外部('factory.data')访问'data' - 数据未定义。
我必须在工厂的返回对象中返回函数吗?
答案 0 :(得分:0)
that.data
一次之前, that.a()
未定义。要解决此问题,请在that.data
之外创建that.a
或致电that.a
:
angular.module('app').factory('factory', function(){
var that = this;
that.a = function() {that.data = {'id': 100}}
that.b = function(){ ** some code ***}
that.getData = function() { return that.data; }
return { a:that.a, b:that.b, getData:that.getData };
});
致电factory.a(); console.log(factory.getData());
,您就会获得正确的价值。
<强> 编辑: 强>
使用getter getData()