0

我正在执行以下操作,但我无法this从方法中的上下文中检索 objsearchAgainremoveUser. 这是我从http://www.adobe.com/devnet/html5/articles/flame-on-a-beginners-guide-to-emberjs.html获取的示例

     <div id="recent">
            <h3>Recent Users</h3>
            <ol>
                {{#each App.recentUsersController.reverse}}
                    <li>
                        <a href="#" title="view again" {{action "searchAgain" target="App.recentUsersController"}}>{{this}}</a> - 
                        <a href="#" title="remove" {{action "removeUser" target="App.recentUsersController"}}>X</a>
                    </li>
                {{/each}}
            </ol>
        </div>


   App.recentUsersController = Em.ArrayController.create({
content: [],
addUser: function(name) {
    if ( this.contains(name) ) this.removeObject(name);
    this.pushObject(name);
},
removeUser: function(view){
    alert(view.context);
    this.removeObject(view.context);
},
searchAgain: function(view){
    alert(view.context);
    App.tweetsController.set('username', view.context);
    App.tweetsController.loadTweets();
},
reverse: function(){
    return this.toArray().reverse();
}.property('@each')

});

view.context里面SearchAgainremoveUser我不确定的。有人可以帮我吗?

4

1 回答 1

0

我找到了解决方案;我希望这对其他人也有帮助:

  • 实际接收事件的方法recentUsersController,而不是视图(我认为这是文章中的错误)
  • {{each}}小胡子应该是这样{{#each user in App.recentUsersController.reverse}}的,以便为您正在循环的对象声明一个标识符
  • 在遍历 时recentUsers,应在{{action}}胡须内添加此类标识符(例如{{action "removeUser" "user" target="App.recentUsersController"}}
于 2012-12-10T06:08:01.597 回答