【发布时间】:2013-07-31 07:20:12
【问题描述】:
好的,这实际上不是我在项目中使用的数据,但我对其进行了一些简化。
但我的 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());
那么我如何在工厂中构造它以获得相同的结果? (并且能够以同样的方式称呼它?)
【问题讨论】:
-
顺便说一句,为什么这被否决了?
标签: javascript angularjs factory