#javascript #jquery #angularjs #firefox #firefox-addon
#javascript #jquery #angularjs #firefox #firefox-дополнение
Вопрос:
Я хочу разработать дополнение для Firefox, в котором есть все элементы управления в дополнительном полном окне, которое я называю addon window.
В настоящее время пользовательский интерфейс основан на jquery, и мне гораздо удобнее в angularjs, и я хотел бы иметь свой пользовательский интерфейс в angularjs.
Я прочитал статью о разработке дополнения с использованием angularjs.
Угловое дополнение для firefox.
Я не смог найти больше статей или инструкцию к статье. Интересно, возможно ли это на самом деле и как мне это сделать.
Комментарии:
1. Как у вас с этим обстоят дела? Помог ли ответ?
Ответ №1:
Добавить сторонний скрипт в ваш проект Mozilla Addon SDK довольно просто. Предпочтительной настройкой было бы использовать JPM вместе с bower.
Предположим, у вас установлены NodeJS и Mozilla Firefox в системе на базе unix, вы захотите создать новый проект с помощью JPM.
mkdir my-addon
cd my-addon
jpm init
bower init
Вам нужно будет добавить .bowerrc
файл в корневой каталог проекта со следующей детализацией. Этот корневой файл конфигурации указывает bower, где компилировать компоненты.
{
"directory": "data"
}
Теперь вы можете приступить к установке сторонних библиотек JavaScript, таких как AngularJS
bower install --save angular
Структура файла будет выглядеть следующим образом;
my-addon/
data/
angular/
angular.js
addon-window.js
addon-window.html
index.js
bower.json
project.json
Поскольку предполагается, что «окно дополнения» вашего проекта представляет собой боковую панель, вам нужно будет определить панель.
В ./index.js
следующем коде будет создана панель для вашего проекта.
var data = require("sdk/self").data;
var addonWindow = require("sdk/panel").Panel({
contentURL: data.url("addon-window.html")
});
внутри ./data/addon-window.html
:
<html ng-app>
<head>
<title>Addon Window</title>
<script src="angular/angular.js">
<script src="addon-window.js">
</head>
<body ng-controller="MainCtrl">
{{helloWorld}}
</body>
</html>
внутри ./data/addon-window.js
:
var app = angular.module('addonWindow', ['ng']);
app.controller('MainCtrl', ['$scope', function($scope){
$scope.helloWorld = 'Greetings from AngularJS!';
}]);
Для запуска вашего дополнения;
jpm run
Теперь вам решать, как взаимодействовать с вашим скриптом wither через postMessage
API порта Addon SDK.
Это может сработать.
внутри ./index.js
:
var data = require("sdk/self").data;
var addonWindow = require("sdk/panel").Panel({
contentURL: data.url("addon-window.html")
});
addonWindow.port.emit('greeting', 'Addon SDK');
внутри ./data/addon-window.js
:
var app = angular.module('addonWindow', ['ng']);
app.controller('MainCtrl', ['$scope', function($scope){
self.port.on('greeting', function (message) { // Addon SDK API
$scope.helloWorld = 'Greetings:' message;
$scope.$digest();
});
$scope.helloWorld = 'Greetings from AngularJS!';
}]);
Я надеюсь, что этот ответ поможет вам в разработке.