使用angularJs路由的firefox sdk插件

firefox sdk add-on using angularJs routing

本文关键字:sdk 插件 firefox angularJs 路由 使用      更新时间:2023-09-26

我已经创建了一个小的chrome扩展使用angularJs与这个结构

extension/
    statics/
         css/
         js/
           lib/
           app/
           api/
         img/
    views/ 
        partials/

所有包含angularJs功能的Js文件都在Js/app文件夹中,所有与chrome API相关的文件都在Js/API文件夹中。manifest json文件

"default_popup": "popup.html#/popup"

帮助我调用弹出路由的控制器。我可以更改选项卡的路由(在新选项卡中):

chrome.tabs.create({url: 'html/application.html#/welcome'});

我想知道如何为firefox中的弹出定义路由,以便我可以重用这个结构来创建firefox SDK插件。你能告诉我怎么做吗?

我想我需要回答我自己的问题。
扩展(firefox &chrome我在文档中读到)不会改变路由,直到下次你点击扩展浏览器的动作按钮再次打开它,所以你不能使用多个路由和多个控制器。如果你需要在AngularJs中为弹出视图绑定双向绑定,你需要通过一个控制器来完成。所以,我发现唯一有效的方法是手动调用控制器:

定义一个函数来调用控制器

app.invokeManually = function () {
  var $injector = angular.bootstrap(document, ['app']);       
  var $scope = angular.element('body').scope();
  $scope.$apply();
}

假设正文为控制元素。然后在弹出体的末尾调用这个函数。

如果你有更好的主意,请告诉我。