Ember.js - 获取DOM元素的模型数据

时间:2015-03-24 13:43:42

标签: javascript ember.js ember-data

我有一个DOM元素,想要获取它所绑定的数据模型。

这必须在任何余烬控制器/组件之外完成。我必须使用的是DOM元素和全局Ember变量(因为这段代码从外部加载的脚本文件运行)。

如何做到这一点?

1 个答案:

答案 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()获取商店。

除非你觉得你有真的做这样的事情的理由,否则我会避免它。