2012-11-15 86 views
1

我想要按鈕調用控制器中的removeAlbum函數。但它什麼都不做。當我點擊按鈕什麼也沒有發生,並且沒有錯誤...我該怎麼做才能解決這個問題?餘燼{{action}}不起作用

這是我的模板:

<script type="text/x-handlebars" data-template-name="albums"> 
    {{#if App.albumsController.total}} 
    <div><h1>Количество альбомов: {{App.albumsController.total}}</h1></div> 
    {{#each content in App.albumsController}} 
     <div class='album'> 
     <div class='image'> 
      <a {{action showAlbum content href=true}}> 
      <img {{bindAttr src="content.avatarUrl"}}> 
      </a> 
     </div> 
     <div class='info'> 
      <h2> 
      <a {{action showAlbum content href=true}}> 
       {{content.title}} 
      </a> 
      </h2> 
      <div>{{content.description}}</div> 
     </div> 
     <div class='actions'> 
      <div> 
      <button {{action removeAlbum content target="App.albumsController"}}>Delete</button> 
      </div> 
     </div> 
     <div class='clear'></div> 
     </div> 
    {{/each}} 
    {{else}} 
    <div><h1>Loading</h1></div> 
    {{/if}} 
</script> 

這是我的控制器:

App.albumsController = Em.ArrayController.create({ 
    content: [], 
    total: null, 
    loadAlbums: function(){ 
    this.set('content', []); 
    this.set('total', null); 
    var self = this; 
    $.post(App.connection.url, {method: 'albums.getAll', params: {user_id: App.connection.userId}}, function(response){ 
     self.set('total', response.albums.total); 
     response.albums.album.forEach(function(item){ 
     var buf = App.AlbumInList.create({ 
      id: item.id, 
      title: item.title, 
      description: item.description, 
      avatarUrl: item.thumbnail_video.thumbnails.thumbnail[1]._content   
     }); 
     self.pushObject(buf); 
     }); 
    }); 
    }, 
    removeAlbum: function(x){ 
    console.log('remove it'); 
    } 
}); 
+1

嗯,在我的餘燼應用程序中,控制器不能在App上找到。我發現他們只是在路由器:App.router.albumsController。也許試試這個?您也可以在您的應用程序中使用控制器而不是完全合格的路徑。 – mavilein

+0

在我的路由器中只有應用程序控制器 – user1753867

+1

爲什麼你自己創建控制器?爲什麼不使用Ember.ArrayController.extend({...})並讓框架通過調用App.initialize()來創建控制器? – mavilein

回答

1

嘗試設置你的目標控制器,而不是App.albumsController。應該解決問題。

<button {{action removeAlbum content target="controller"}}>Delete</button>