我在 ember.js 模板中有以下代码。 userController 是一个 ArrayController,内部有多个“用户”。
{{#each CollaborativeEditor.userController}}
{{#view CollaborativeEditor.OnlineUserView userBinding="this"}}
<div class="avatar">
<div class="avatar_name">{{name}}</div>
<div class="avatar_status">{{status}}</div>
</div>
<div id="dropdown-1">
<ul>
<li><a href="#" {{action startChat target="onlineUser"}}>Talk to </a></li>
</ul>
</div>
{{/view}}
{{/each}}
这是相应 View 的代码:
CollaborativeEditor.OnlineUserView = Ember.View.extend({
tagName: 'li',
startChat : function() {
console.log(this.get('user'));
}
});
尽管为每个用户正确设置了名称和状态,但附加到链接的 startChat 操作始终将数组的第一个用户打印到控制台。 绑定(bind)有什么问题?
最佳答案
非常感谢您的请求,将其放入 jsfiddle 中!
当我尝试在那里重现错误时,我意识到了问题所在,并且它与 ember 无关。
id="dropdown-1"的 div 是从另一个链接调用的,并且它始终具有相同的 id,因此其用户绑定(bind)始终具有相同的操作。
现在我已将 Id 绑定(bind)到用户对象,并且它工作得很好。
关于Ember.js 绑定(bind)数组元素来查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13471473/