Javascript 有没有什么钩子可以用来将模板和功能从Chrome扩展干净地注入到Ember应用程序中?
我是一个开源团队的一员,这个团队很快就走到了一起。我们都使用一个用于预算编制的应用程序,它过去一直是一个桌面应用程序。他们刚刚发布了一个全新的重写版本,现在在网上发布了一个Ember应用程序 当然,与任何重写一样,许多功能都没有被削减到发布版,超级用户非常不安。就我个人而言,我喜欢一些没有的功能,但我没有抱怨,而是决定做一个Chrome扩展,添加我想要的功能 这已经被证明是非常流行的,但目前我们正在做的主要是微小的表面更新和CSS攻击。当我们想要注入DOM元素或类似元素时,我们依赖于如下脆弱的黑客:Javascript 有没有什么钩子可以用来将模板和功能从Chrome扩展干净地注入到Ember应用程序中?,javascript,ember.js,google-chrome-extension,ember-data,Javascript,Ember.js,Google Chrome Extension,Ember Data,我是一个开源团队的一员,这个团队很快就走到了一起。我们都使用一个用于预算编制的应用程序,它过去一直是一个桌面应用程序。他们刚刚发布了一个全新的重写版本,现在在网上发布了一个Ember应用程序 当然,与任何重写一样,许多功能都没有被削减到发布版,超级用户非常不安。就我个人而言,我喜欢一些没有的功能,但我没有抱怨,而是决定做一个Chrome扩展,添加我想要的功能 这已经被证明是非常流行的,但目前我们正在做的主要是微小的表面更新和CSS攻击。当我们想要注入DOM元素或类似元素时,我们依赖于如下脆弱的黑
(function checkCreditBalances() {
if ( typeof Em !== 'undefined' && typeof Ember !== 'undefined' && typeof $ !== 'undefined' && $('.is-debt-payment-category.is-master-category').length ) {
// Do stuff here with thing
}
}
setTimeout(checkCreditBalances, 300);
)();
当我阅读Ember文档时,它总是谈论在构建实际应用程序时要做什么。我不是,所以创建应用程序时的调试标志对我没有帮助。我没有建立模板等。余烬检查员不承认这是一个余烬应用程序,因为它已经是一个生产建设
我需要能够更深入(但安全)地连接到应用程序中,以添加更高级的功能。因此:
- 有没有什么内部钩子可以告诉我们什么时候呈现组件,它是什么,如果它是我们想要的,我们就有机会向其中注入DOM元素?或者替换实例化时使用的模板?还是添加事件处理程序
- 是否有一种清晰的方法来判断应用程序何时加载,我们可以在上面注入逻辑
- 有没有办法为整个应用程序替换某个组件?这个特定的应用程序似乎在window上同时定义了Em和Ember,我不知道为什么,因为两者似乎都包含非常相似的对象
- 有没有一种好方法可以将单击处理程序(或一般的事件处理程序)附加到组件
- 如何与来自外部余烬的余烬数据交互?是一样的,还是我应该记住什么?我知道我可以用Ajax调用进行复制,但我假设Ember数据正在进行一些缓存和其他功能,如果可能的话,我希望利用应用程序已经对其后端进行的调用
谢谢 伊纳布!不管怎样,我接受@blessenm的建议,最好看看余烬论坛。@Casey,不幸的是,我在那里试过了,但没有得到回应。我会留意那边,看看能不能得到帮助。