我正在执行以下操作,但我无法从方法this
和searchAgain
中的上下文中检索removeUser
obj。这是我从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
和SearchAgain
内的removeUser
给了我未定义的内容。有人可以帮我吗?
答案 0 :(得分:0)
我找到了解决方案;我希望这也有助于其他人:
recentUsersController
实际接收事件的方法,而不是视图(我相信文章中的错误){{each}}
小胡子应该读{{#each user in App.recentUsersController.reverse}}
,以便声明您正在循环的对象的标识符recentUsers
时,应在{{action}}
胡须内添加此类标识符(例如{{action "removeUser" "user" target="App.recentUsersController"}}
)