ember.js - Ember CLI : where to reopen framework classes

标签 ember.js ember-cli

我想重新打开 Ember 或 Ember Data 框架类。使用 Ember CLI,放置这些以便获得初始化属性的正确位置在哪里?这是我想做的事情的一个例子:

import DS from 'ember-data';

DS.Model.reopen({
  rollback: function() {
    this._super();
    // do some additional stuff
  }
});

最佳答案

我认为执行具有副作用的模块的最佳方法是 create an initializer .像这样的东西:

// app/initializers/modify-model.js
import DS from 'ember-data';

let alreadyRun = false;

export default {
    name: 'modify-model',
    initialize() {
        if (alreadyRun) {
            return;
        } else {
            alreadyRun = true;
        }

        DS.Model.reopen({
            // ...
        });
    }
};

初始化程序由 Ember-CLI 自动运行,因此无需自己调用它们。

编辑:正如 Karim Baaba 指出的那样,初始化程序可以运行不止一次。为了解决这个问题,我提供了一个 alreadyRun旗帜。

关于ember.js - Ember CLI : where to reopen framework classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27154886/

相关文章:

ember.js - 无法进行简单的验收测试以正常运行

ember.js - 使用 Ember 动态生成 sitemap.xml

routing - Ember.js 路由

javascript - 在不进行 HTTP 调用的情况下更新 Ember Data 中的特定记录?

javascript - 谁能解释一下 ember.js 创建函数

ember.js - Ember Inspector 在检查我自己的 ember 应用程序时给我错误

javascript - Ember 为什么我们必须对某些 Bower 依赖项使用导入

ember.js - 如何配置 Ember CLI 以使用 uncss

javascript - 找不到 Ember 组件

ember-cli - 西兰花指南针和 ember-cli 0.39