gpt4 book ai didi

javascript - 使用 angularJs 路由的 firefox sdk 附加组件

转载 作者:行者123 更新时间:2023-11-29 19:35:13 25 4
gpt4 key购买 nike

我使用具有这种结构的 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();
}

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

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com