我有一个DOM元素,想要获取它所绑定的数据模型。
这必须在任何余烬控制器/组件之外完成。我必须使用的是DOM元素和全局Ember变量(因为这段代码从外部加载的脚本文件运行)。
如何做到这一点?
答案 0 :(得分:1)
它无法完成(无论如何都不是开箱即用)。 DOM元素和模型之间没有关系。我能想到这样做的最好方法是将模型的ID绑定到特定DOM项的属性。例如:
export default Ember.Component.extend({
model: null,
attributeBindings: ['data-model-id'],
'data-model-id': function() {
return this.get('model.typeKey') + ':' + this.get('model.id');
}.property('model.{typeKey,id}');
});
然后你在DOM中得到一个元素:
<div id="ember189" data-model-id="user:86">...</div>
但这只适用于编写HTML以使每个模型获得自己的DOM元素的情况。您仍然需要访问私有API才能通过App.__container__.lookup()
获取商店。
除非你觉得你有真的做这样的事情的理由,否则我会避免它。