2013-05-18 23 views
0

我正在寫一個小程序的餘燼不使用灰燼數據(使用TheMovieDB API),我不明白爲什麼當我點擊一個鏈接{{#linkTo}}模型無法加載,但當我刷新頁面手動數據加載正確。負荷模型就像一個沒有燼數據刷新

這裏是我的App.js:

window.App = Ember.Application.create(); 

App.Router.map(function() { 
    this.route('about'); 
    this.resource('movie', { 
    path: '/movie/:movie_id' 
    }) 
}); 

App.IndexRoute = Ember.Route.extend({ 
    setupController: function (controller) { 
     var movies = []; 
      $.ajax({ 
       url: "http://api.themoviedb.org/3/movie/popular?api_key=5b088f4b0e39fa8bc5c9d015d9706547", 
       type: "GET", 
       async: false, 
       success: function (data) { 
       var length = data.results.length; 

       data.results.forEach(function (item) { 
        if (item.backdrop_path != null) { 
         var tmp = item.backdrop_path; 
         item.backdrop_path = "http://cf2.imgobject.com/t/p/w500/"+tmp+"?api_key=5b088f4b0e39fa8bc5c9d015d9706547" 
         movies.push(item); 
        } 

       }) 
      } 
     }); 

     controller.set('content', movies); 
    } 
}); 


App.MovieRoute = Ember.Route.extend({ 
    model: function (param) { 
     var infos; 
     /* Important !! */ 
     var promise = Ember.Deferred.create(); 

    $.ajax({ 
     url: "http://api.themoviedb.org/3/movie/"+param.movie_id+"?api_key=5b088f4b0e39fa8bc5c9d015d9706547", 
     type: "GET", 
     success: function (data) { 
      var tmp = data.backdrop_path; 
      data.backdrop_path = "http://cf2.imgobject.com/t/p/w500/"+tmp+"?api_key=5b088f4b0e39fa8bc5c9d015d9706547"; 
      // infos = Ember.Object.create(data) 
      promise.resolve(data); 

     } 
    }); 
    console.log("MODEL"); 
    return promise; 
}, 
    setupController: function (controller, model) { 
     controller.set('content', model); 
    } 
}); 

App.Movie = Ember.Object.extend({}) 

感謝您的幫助!

+0

你可以在你的'linkTo'被調用的地方顯示你的模板嗎? – intuitivepixel

回答

0

既然你沒有指定你的意思是哪種模式,我假設你指的是movie模型,並與我的假設,我要回答。

我覺得你的問題是,你的模板期望,因爲你在你的路由器的地圖,而不是一個簡單的route指定的resource模型從MovieIndexController到來。

也就是說,解決方案可能是將您的控制器重命名爲MovieIndexController以及相應的路線MovieIndexRoute

這裏的reference我的回答是基於的資源

希望它有幫助

+0

對不起,我不指定,但我想您的解決方案和變化'this.resource(「電影」)''到this.route(「電影」)'但二者之間仍然不起作用。 – DCK

+0

嗯,可以創建一個小提琴?這會讓我更容易找到我猜想的問題。 – intuitivepixel