我想在我的角度服務中使用「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