我正在创建一个 chrome 扩展,我想在里面使用 ember.js。我只是创建了一个非常基本的,它适用于大多数网站,但不适用于 gmail 或 feedly 等网站。使用这些网站,我会收到如下错误:
断言失败:找不到路由我的 ember-1.0.0-rc.7.js:364(匿名函数)ember-1.0.0-rc.7.js:364 Ember.assert ember-1.0.0-rc。 7.js:52 Ember.Router.Ember.Object.extend._doTransition ember-1.0.0-rc.7.js:26488 Ember.Router.Ember.Object.extend.handleURL ember-1.0.0-rc.7。 js:26331 Ember.Router.Ember.Object.extend.startRouting ember-1.0.0-rc.7.js:26312 Ember.Application.Ember.Namespace.extend.startRouting ember-1.0.0-rc.7.js: 30234 Ember.Application.Ember.Namespace.extend.didBecomeReady ember-1.0.0-rc.7.js:30192 DeferredActionQueues.flush ember-1.0.0-rc.7.js:4746 Backburner.end ember-1.0.0- rc.7.js:4830 Backburner.run ember-1.0.0-rc.7.js:4869 Ember.run ember-1.0.0-rc.7.js:5200(匿名函数)ember-1.0.0-rc .7.js:29937 jQuery.Callbacks.fire jquery-1.9.1.js:1037 jQuery.Callbacks.self.fireWith jquery-1.9.1.js:1148 jQuery.extend.ready jquery-1.9.1.js:433 完成
你知道如何解决这个问题吗?内容脚本独立运行(https://developer.chrome.com/extensions/content_scripts.html#execution-environment);它看起来是 ember.js 的路由例程,它捕获所有事件,但我不够熟练,无法理解发生了什么。
我的 manifest.json :
{
"name": "Ember module test",
"version": "1.0",
"manifest_version": 2,
"description": "The first extension that I made ;)",
"permissions": [ "tabs", "cookies", "\u003Call_urls\u003E", "https://accounts.google.com/o/oauth2/token", "pageCapture" ],
"content_scripts": [ {
"js": [ "jquery-1.9.1.js", "handlebars-1.0.0.js", "ember-1.0.0-rc.7.js", "contentScript.js" ],
"matches": [ "http://*/*", "https://*/*" ],
"run_at": "document_end"
} ]
}
我的 contentScript.js:
var wrapperHTML = ' <script type=\"text/x-handlebars\"> <h2>Title</h2> {{outlet}} </script> <script type=\"text/x-handlebars\" data-template-name=\"index\"> {{#each item in model}} <li>{{item}}</li> {{/each}} </ul> </script>';
function initWrapperHTML() {
var newNode = document.createElement("div");
document.body.appendChild(newNode);
newNode.innerHTML += wrapperHTML;
}
initWrapperHTML();
AppEmber = Ember.Application.create();
AppEmber.Router.map(function() {
// put your routes here
});
AppEmber.IndexRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue', 'emberorange'];
}
});
要重现我的问题,请创建一个包含以下 2 个文件的文件夹,并在其中和 chrome:// 中添加 ember-1.0.0-rc.7.js、handlebars-1.0.0.js 和 jquery-1.9.1.js extensions 添加带有“加载解压缩扩展...”的文件夹
谢谢