使用angularJs路由的firefox sdk插件

时间:2014-08-23 08:40:50

标签: javascript angularjs firefox-addon firefox-addon-sdk

我使用带有此结构的angularJs创建了一个小的chrome扩展

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

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

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

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

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

我想了解如何在firefox中为弹出窗口定义路由,以便我可以重用此结构来创建firefox SDK加载项。 请你告诉我怎么样?

1 个答案:

答案 0 :(得分:3)

我想我需要回答我自己的问题 扩展中的弹出窗口(我在文档中读到的firefox和chrome)不会改变路由,直到您下次点击扩展浏览器操作按钮再次打开它,这样您就不能使用多个路由和多个路由控制器。如果您需要对AngularJs中的弹出视图进行双向绑定,则需要通过单个控制器执行此操作。 所以,我找到的唯一工作方法是手动调用控制器:

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

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

假设身体为控制元素。然后在弹出框体的末尾调用此函数。

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