0

コントローラーのプロパティを設定しようとしています

そうしようとしている

{{view Ember.Select contentBinding="App.tastingsController.names"}} 

それは動作しません

App.tastingsController = Ember.ArrayController.extend
  names: ["Velato", "Abbastanza limpido", "Limpido", "Cristallino", "Brillante"]

このバージョンが正しく動作している間 (ただし、次の警告が表示されます: WARNING: The immediate parent route did not render into the main outlet and the default 'into' option may not be expected)

App.tastingsController.names = ["Velato", "Abbastanza limpido", "Limpido", "Cristallino", "Brillante"]

ここに私のルートがあります:

App.Router.map ->
  @route "home", { path: "/" }
  @route "about"
  @resource "tastings", ->
    @route "new"
    @resource "tasting", { path: ":tasting_id"}

理由を説明していただけますか?

ここで見つけました)

ありがとうございました

マルコ

4

1 に答える 1

0

コードにはいくつかの問題があります。

  • App.tastingsControllerという名前にする必要がありますApp.TastingsController。コントローラ クラスは大文字で始める必要があります。

  • ルート階層内のテンプレートをスキップしたため、警告が表示されています。これを修正するには、ルートに関する詳細情報が必要です。

  • コントローラーにプロパティを設定する必要がある場合 (namesあなたの場合など)、それを行うには 2 つの方法があります。

    ルートに設定するか:

    App.TastingsRoute = Ember.Route.extend({
      setupController: function(controller, model) {
        controller.set('names', names: ['list', 'of', 'names']);
      }
    });
    

    または、コントローラ クラスを定義するときに直接設定することもできます。

    App.TastingsController = Ember.ArrayController.extend({
      content: [],
      names: ['list', 'of', 'names']
    });
    
  • ビュー/テンプレートからコントローラーを参照する必要がある場合は、コントローラー クラス全体に名前を付けないでください。バインドしたいプロパティを使用するだけです(ビューのコントローラーが であると仮定しますApp.TastingsController

{{view Ember.Select contentBinding="names"}}

お役に立てれば。

于 2013-04-13T15:58:31.847 に答える