0

trek.github.com のイントロ チュートリアルに従っていますが、実行中にタイトルのエラーに遭遇しました。Paste is available、119 行目でエラーが発生しました。それまでの間、このスレッドを使用して、EmberJS の初心者向けの質問をいくつか行いたいと思います。

  1. Ember.ObjectController と Ember.Object の違いは何ですか?
  2. 70 行目では、URL の後に .fmt(this.get('login')) が出現しています。これは何をしますか?
  3. 「/:VAR」表記を使用して、Ember が変数 URL 名を処理できることに気付きました。複数の変数 URL 名が発生した場合、重複がある場合、EmberJS はそれらをどのように管理するのでしょうか? 変数の URL 名を使用することは良い習慣ですか?
  4. この例には、ログイン名を取得するためのシリアライズおよびデシリアライズされた関数 (107 行目から) が付属しています。しかし、私は彼らがどこにも呼ばれていないのを見ません。

ご辛抱いただきありがとうございます、アンジェラ

4

1 に答える 1

0

アンジェラさん、あなたは古いバージョンの Ember を使っているようですね。2 より前のバージョンを使用していますが、最新バージョンは 4 より前です。多くの変更があるため、4 より前のバージョンを使用することをお勧めします。connectOutletsたとえば、行番号 119 を見ると、pre 4 にはもうメソッドがないことがすぐにわかります。

そうは言っても、あなたの問題は、ざっと見ただけでloadMoreDetails、コントローラー自体ではなく、コントローラーのコンテンツを呼び出そうとしていることだと思います。試す:router.get('oneContributorController').loadMoreDetails();

さらに、pre 4 ではルーターにアクセスできなくなりました。更新することが重要だと思います。

質問

  1. Ember.Objectは単一のオブジェクトを表しますが、Ember.ObjectControllerは多くEmber.Objectの を格納するためのコレクションに関するものです。Ember.ArrayControllerユースケースに応じて、(類似したオブジェクトの配列)、Ember.ObjectController(さまざまな関連オブジェクトのコンテナ)、またはEmber.Controller(一般的な使用法)のいずれかを使用する必要があります。

  2. あなたのバックグラウンドは何ですか?ルビーかPHPか?いずれにせよ、fmtメソッドは PHPsprintfや Rails の%演算子 ( "Tasks: %d" % @tasksCount) に似ています。の%@値がget('login);文字列のどこに表示されるかを指定します。

  3. Ember は、URL 自体で変数の名前を指定しません。デフォルトではありません。URL のどの部分がどのプロパティにマップされるかを Ember に伝えるのはルーターです (ルーター v1 を使用していますが、4 以前ではルーター v2 です)。これにより、各変数が URL 内に固有のスペースを持つため、重複はありません。

  4. これらは、あなたが使用している古い Ember のものです。新しいバージョンでは、より直感的です。コントローラーが表すモデルをコントローラーに伝えるにはmodel、ルーターに正しいモデルを返すメソッドがあります。使用しているバージョンでは、これらは Ember に URL パラメーターからオブジェクトを作成する方法を伝え ( deserialize- なぜ持っているdeserializedのですか ?)、逆に、渡したオブジェクトから URL のプロパティを取得するように指示します ( serialize)。

PS:昨日の私の投稿は非常に参考になると思います。

于 2013-02-15T16:39:30.397 に答える