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 に答える