好吧,这实际上不是我在项目中使用的数据,但我稍微简化了一下。
但我在我的angularjs app中有这个工厂:
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 };
但这只是返回undefined。
所以试着解释一下我想做什么:
说我打电话给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());
那么如何在一个机构中构建它以获得相同的结果? (并且能够以同样的方式调用它吗?)
答案 0 :(得分:0)
确实做了类似这样的事情:
myApp.factory('inputinfo', function () {
return function (in) {
var self = {
test: function () {
return "hello " + in;
},
test2: function () {
return "hello " + in;
}
};
return self;
}
}
然后我可以这样称呼它:
var test = inputinfo("dude");
alert(test.test());
这会给我结果:你好老兄