0

好的,这实际上不是我在项目中使用的数据,但我对其进行了一些简化。

但我在我的 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());

那么我如何在工厂中构造它以获得相同的结果?(并且能够以同样的方式称呼它?)

4

1 回答 1

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());

那会给我结果:你好,伙计

于 2013-08-07T10:46:13.413 回答