我使用具有此结构的 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/