javascript - 使用 angularJs 路由的 firefox sdk 插件

标签 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 文件夹中。 在 list json 文件中

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

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

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

我想了解如何在 Firefox 中定义弹出窗口的路由,以便我可以重用此结构来创建 Firefox SDK 附加组件。 你可以告诉我怎么做吗?

最佳答案

我想我需要回答我自己的问题。
扩展中的弹出窗口(我在文档中读到的 firefox 和 chrome)不会更改路线,直到下次您单击扩展浏览器操作按钮再次打开它时,因此您不能使用多个路线和多个 Controller 。如果您需要在 AngularJs 中对弹出 View 进行双向绑定(bind),则需要通过单个 Controller 来完成。 因此,我发现的唯一有效方法是手动调用 Controller :

定义一个函数来调用 Controller

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

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

如果您有更好的想法,请告诉我。

关于javascript - 使用 angularJs 路由的 firefox sdk 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25460112/

相关文章:

javascript - 用于切换侧边栏的 Firefox WebExtension 工具栏按钮

javascript - Google是如何实现首页的淡入淡出效果的?

javascript - 在 aurelia.io 的嵌套循环中访问两个索引

angularjs - Ng-Repeat 内的 Angular JS 日期格式过滤器不格式化

c# - 如何使用 C# 编程语言通过 Visual Studio 编写 FireFox 扩展?

javascript - 火狐插件 : how to debug simple-storage using addon builder

javascript - Masonry JS 忽略 CSS 转换

javascript - 在网站上禁用复制

c# - ServiceStack 嵌套数组错误 : KeyValueDataContractDeserializer: Error converting to type: Type definitions should start with a '{'

javascript - 当范围函数尝试将单元格信息作为参数传递时,Angular JS ui-grid cellTemplate 的 ng-click 不触发