好的,这实际上不是我在项目中使用的数据,但我对其进行了一些简化。
但我在我的 angularjs 应用程序中有这个工厂:
myApp.factory('inputinfo', function () {
var self = {
test: function (in) {
return "hello " + in;
}
test2: function (in) {
return "hello " + in;
}
};
return { test: self.test, test2: self.test2 };
});
这行得通,但我想要的是“组合”它们。我的意思是现在我正在解析 in 参数以及 test1 和 test2 并且我希望他们从同一个函数中使用它......所以我尝试了这样的事情:
var self = {
nfo: function (in) {
var selfObj = { test1: test1(), test2: test2() };
function test1() {
return "hello " + in;
}
function test2() {
return "hello " + in + " ok";
}
return { self: self.selfObj }
}
};
return { nfo: self.nfo };
但这只是返回未定义。
所以试图解释我想要做什么:
假设我调用 inputinfo 工厂,我应该能够像这样调用和使用它:
var some = inputinfo.nfo("something");
然后我希望能够做到:
alert(some.test1);
所以当我调用一些值时,我可以继续获取所有值(test1、test2 等)。
我很难理解我需要如何写这个来得到我想要的结果。对不起,如果我没有解释得那么好:-S
编辑:
也许用更简单的方式来解释它:
说我有这个:
function atest(in)
{
var values = {
one: function() {
return "hello " + in;
}
two: function() {
return "hello " + in " ok";
}
}
return { values: values };
}
我可以这样做:
var result = atest("something");
alert(result.values.one());
那么我如何在工厂中构造它以获得相同的结果?(并且能够以同样的方式称呼它?)