3

私は JS が初めてで、Meteor でいくつかの実装に問題があるため、ご容赦ください。を使用して JavaScript でクラスを実装しました

function Class() {
  this.property = 0
  this.method = function () {
  return "method called"
  }
}

new Meteor.collection を使用して新しい Meteor Collection bu を作成し、クライアントでデータを正常に取得して、html テンプレートで Class.property を表示できるようになりました。しかし、私は Class.method にアクセスできず、これを実現する方法があるかどうか、また Meteor.methods を使用して Class インスタンスを入力として受け取る関数を定義することが最善の方法であるかどうか疑問に思っていました。

4

5 に答える 5

1

これは実際には答えではありませんが、流星のパッケージ マネージャーでは、モデル、コレクション、ビューを提供するbackbone.jsのようなライブラリと、流星アプリを作成するときに非常に便利なルーターを追加できます。Backbone はjQueryとうまく連携します。

私の他の提案は、Mootoolsのようなライブラリを使用することです。これは、jQuery とは異なり、JavaScript の記述方法を変更しようとはしませんが、オブジェクト指向の JavaScript を作成するエクスペリエンスを向上させます。(参照: jqueryvsmootools )。mootools を使用すると、次の方法でクラスを作成できます...

var MyClass = new Class({
    'Implements': [Options],

    //default options
    'options': {
        'foo': null
    },

    'initialize': function(options) {
        this.foo = options.foo;
    },

    'bar' : function() {
       return this.foo;
    }
});

var blub = new MyClass({'foo': 'Hello World'});
blub.bar(); // "Hello World"
于 2012-07-18T13:52:08.220 に答える
0

このアプローチは私にとって美しく機能しました:

http://www.okgrow.com/posts/2014/05/19/meteor-transform/

于 2015-02-04T05:04:00.797 に答える
-2

Meteor については何も知りませんが、コードに問題があるようです。次の後にセミコロンがありません:

this.property = 0

そのセミコロンがないと、JavaScript インタープリターは this.method 割り当てを実行しません。

于 2012-07-18T10:55:52.837 に答える