2014-02-15 25 views
0

我正在關注一本書教程,這是導致以下錯誤的代碼塊。Ember錯誤:Ember.Object.create不再支持在使用Ember.ArrayController.create(...)時調用_super的方法(...)

聲明失敗:Ember.Object.create不再支持定義調用_super的方法。燼-1.3.2.js:3285

未捕獲的類型錯誤:對象[對象的對象]的屬性 '_super' 不是一個函數的application.js:6

碼塊導致錯誤:

MovieTracker.moviesController = Ember.ArrayController.create({ 
    content: [], 
    init: function() { 
     this._super(); 

     var list = [ 

      MovieTracker.Movie.create({ 
       title: 'Movie 1', 
       rating: 4 
      }), 
      MovieTracker.Movie.create({ 
       title: 'Movie 2', 
       rating: 5 
      })]; 

     this.set('content', list); 

    } 
}); 

我是Ember的新手,對Ember的對象模型有一個基本的理解,任何我讀過的關於this._super()的錯誤都涉及到使用內置於燼中的Mixins。我不知道這是如何適用於構建一個Ember.ArrayController對象。該錯誤告訴我,_super()不再受支持。直到這一點,我一直在關注教程。我不知道如何從這裏開始。

進出口使用灰燼1.3.2和書教程進出口以下是 「Ember.js應用開發如何做」,這例子是第25頁

我見過的建議返回this._super( );在init方法的結尾,但仍然導致錯誤。

編輯: 我意識到,我是用灰燼的舊版本,所以我升級到1.4.0,但我仍然得到同樣的._super()錯誤,但是它的唯一一個錯誤,而不是兩個:

未捕獲錯誤:斷言失敗:Ember.Object.create不再支持定義調用_super的方法。 ember-1.4.0.js:73

它再次說我創建對象時_super不再被支持,但我該如何處理使用ArrayController.create方法?

回答

0

s/Ember.ArrayController.create/Ember.ArrayController.extend。無需創建controller的實例。 Ember負責在運行時實例化它們。

如果需要並初始化實例上的道具,使用Em.Object.createWithMixins

0

由於熱帶雨林-G的答案。您的解決方案並刪除錯誤但它沒有在教程:(

我能夠通過創建對象,然後設置,我需要的值來解決這個問題稍後會導致問題。

看樣子。這個腳本在本教程試圖實例化,並在同一時間設置的值我改變了我的代碼如下:

MovieTracker.moviesController = Ember.ArrayController.create(); 

MovieTracker.moviesController.set('content', [ 

      MovieTracker.Movie.create({ 
       title: 'Movie 1', 
       rating: 4 
      }), 
      MovieTracker.Movie.create({ 
       title: 'Movie 2', 
       rating: 5 
      }) 
     ]); 

這允許我使用

MovieTracker.movi​​esController.get('長度');

,並使其返回2

在這一點上,我碰到的這本書的幾個問題...我認爲它的時間移動到一個更好的書:(

相關問題