我想在我的角度服务中使用“self.port.emit”从UI发送附加结果。问题是我没有得到任何错误,所以我不知道为什么面板没有检测到self.port。实现AngularJS的Firefox扩展
下面是我当前文件夹结构:
add-on/
lib/
toolbar.js
data/
angularApp/
app/
scripts/
controllers/
groupCtrl.js
services/
groupservice.js
在我gorupservice.js我有以下代码:
angular.module('angularApp').service('groupservice'), function() {
this.addGroup = function(name) {
self.port.emit("newGroupName", name);
}
}
的groupservice由groupCtrl.js调用。函数addGroup被调用。在toolbar.js中,我有一个“self.port.on”正在监听“newGroupName”。在toolbar.js,我有
function createSettingsPanel() {
var settingsPanel = require("sdk/panel").Panel({
...
contentScriptFile: [data.url("angularApp/app/bower_components/angular/angular.js"),
data.url("angularApp/app/scripts/app.js"),
data.url("angularApp/app/scripts/controllers/groupservice.js")],
});
settingsPanel.port.on("newGroupName", function() {
console.log("MADE IT"); //NOT GETTING HERE!
});
}
如果有人在一个Firefox angular.js附加任何经验,帮助将不胜感激。
self本质上是一个用于在附加组件和内容脚本之间进行通信的变量。要发送消息,使用self.port.emit并接收消息use self.port.on. – CodeMinion
对我的代码所做的更改会产生什么影响?猜猜你正在寻找一个发出事件的单身人士,而不是接收事件? – pocesar
你的代码和之前一样。仍然没有错误。 – CodeMinion