2017-04-11 8 views
1

Emberが新しく、ボタンを押したときにリストが異なるデータで再レンダリングされる簡単なデモアプリケーションを作成しようとしています。 I「はコード内の2ヶ所である以下http://jsfiddle.net/0xnpav6L/21/ember.jsで2回目にリストにモデルを再バインドする際の問題

:ここ

は初めての罰金をつぶやきの一覧が表示されSHOWリストボタンを押すと、結合作品で、私の試みの実行されている例でありますモデルをリストにリバインドしようとしました。

1)ApplicationControllerで - 私はbindNewModelアクションをMODIFYボタンにバインドしようとしましたが、動作していないようです。

2)ListController - すべてのリストアイテム(リストアイテムが押されている場合)にbindNewModelアクションをバインドしようとしましたが、動作していないようです。

App.ApplicationController = Ember.ObjectController.extend({ 
      actions: { 
       bindNewModel: function() { 
        console.log(App.ListController); 
        this.set('model', renderTweets()); 
       } 
      } 
     }); 

    App.ListController = Em.ArrayController.extend({ 
      init: function() { 
       this.set('model', renderTweets()); 
      }, 
      actions: { 
       bindNewModel: function() { 
        this.set('model', renderTweets()); 
       } 
      } 
     }); 

助けが必要です。

+0

あなたの新しいemberなぜあなたはember '1.8'を使用していますか?あなたが使っているたくさんのパターンは、最新のemberバージョン '2.12'で削除/廃止されました。 – Lux

+0

あなたはそうではありません。これはまだ「1.8」です。リソースパネルを確認してください。あなたのコードは '2.12'でも実行されません。 'ArrayController'のようなものは' 2.0'からemberから削除されています。 '2.12'へのあなたのリンクが無効であることにも気づくでしょう。あなたのコード全体は、古くなったサンプル/チュートリアルに基づいています。最新のemberバージョンのガイドである 'ember-cli'を試してみてください。これは、フィドルの代わりに' ember-twiddle'です。ここにリンクがあります。](https://emberjs.com/community/) – Lux

答えて

1

ラックスは彼のコメントで絶対に正しいです。あなたはかなり古いバージョンを使用しています。あなたのエバー試験を示すためにember twiddleを使用することをお勧めします。

とにかく;あなたのコードに関してはApplication.Controllerのモデルは#/listにレンダリングされるものとは関係ありません。したがって、アイテムをクリックしたときにコンテンツを更新するために、ListControllerにいくつかの変更を加えました。私はmodelの代わりにmodel.dataを設定し、ハンドルバーでは{{#each model in this.model.data}}を使用して、モデルのデータ属性を反復処理するようにしました。 jsfiddleを確認して、少なくとも適切に更新されているかどうかを確認してください。

さらに、official Ember Guideと読んでEmberの現在のバージョン2.12.0を使い始めると、はるかに良いはずです。

関連する問題