11

クラスのインスタンスを注入したい。このスレッドから、サービスが新しい serviceArgFunction を返すように見えます。これは私が望むものです。 https://groups.google.com/forum/#!msg/angular/56sdORWEoqg/VxECXKbn3gsJ

しかし、私はそれを機能させることができないようです。何らかの理由で、私の 2 つのインスタンスは状態を共有しています。誰かが私が間違っていることを理解するのを手伝ってくれますか? http://jsfiddle.net/kTjMy/5/

var Klass = function() {
    this.count = 0;
    this.getAndIncCount = function() {
        this.count += 1;
        return this.count;
    };
};

app.service('service', Klass);
4

3 に答える 3

17

クラスのコンストラクターを返すファクトリを使用できます。

app.factory('myKlass', function() {
  return Klass
});

もっと簡単に言えば、Klassが別の場所で定義されている場合は、以下を使用できますvalue

app.value('myKlass', Klass);

いずれにせよ、通常どおりに注入してください。

function CtrlA($scope, myKlass)
{
  new myKlass();
}

この jsFiddleを参照してください。

[編集]この Google グループの投稿と、この関連する例も参照してください。

于 2012-11-29T07:04:56.460 に答える