google-chrome-extension - chrome 扩展中的 angularjs 模板

标签 google-chrome-extension angularjs

我在基于内容脚本的 chrome 扩展中使用 angularjs 模板时遇到了一个奇怪的问题。我进入无限循环。当我使用内联模板(使用带有字符串的模板属性)时,它工作正常。有人可以建议我做错了什么吗?

list 文件

{
  "name": "Content Script Cross-Domain XMLHttpRequest Example",
  "version": "2.0.0",
  "manifest_version": 2,
  "description": "Demonstrates making cross domain requests from a content script by putting Twitter trends on Google News.",
  "permissions": [
    "http://localhost:9393/*"
  ],
  "icons": {
    "48" : "sample-48.png",
    "128" : "sample-128.png"
  },
  "content_scripts": [
    {
      "matches": ["http://news.google.com/*","*://mail.google.com/*"], 
      "js" : ["lib/jquery-1.6.4.min.js","lib/angular-1.0.1.min.js", "app.js","contentscript.js"]
    }
  ]
}

应用程序.js
angular.module('myApp', []).
  config(['$routeProvider', function($routeProvider) {
  console.log('inside angular.module');
  $routeProvider.
      when('/', {templateUrl: 'contact.html',   controller: AppController}).
      otherwise({redirectTo: '/'});
}]);


function AppController($scope){
  console.log('inside AppController');
}

在 contentscript.js 里面
$(this).append('<div id="gmeAppContainer">'
                                 + '<div ng-view></div>'
                              + '</div>');
var rootEle = $(this).find('#gmeAppContainer');
angular.bootstrap(rootEle,['myApp']);

当我在 app.js 中使用内联模板时,它工作正常。
when('/', {template: '<div>This is inline template </div>',   controller: AppController}).

也在 angularjs google group 上发帖
https://groups.google.com/d/topic/angular/A_SVYZWPKe8/discussion

最佳答案

看来我想通了。

首先在 manifest.json 文件中声明模板文件。

  "web_accessible_resources" :[
      "contact.html"
  ]

然后使用 chrome.extension.getURL 方法获取模板文件的绝对url
  when('/', { controller: AppController, templateUrl : chrome.extension.getURL('contact.html')}).

关于google-chrome-extension - chrome 扩展中的 angularjs 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11748028/

相关文章:

javascript - ng-repeat 键值对象上的自定义过滤器仅更新 View 2 次

google-chrome-extension - 使用扩展程序名称获取 chrome 扩展程序的 id

javascript - 如何使用 typescript 在另一个服务的一个 Angular 服务中使用 $rootScope 定义

javascript - AngularJS - 如何创建具有特定格式的表单?

node.js - Puppeteer chrome 获取事件/可见选项卡

javascript - 在 Chrome 扩展中使用 React js

javascript - Zip 目录条目(文件系统 API)

javascript - 如何使用 jQuery 为指令模板中的元素设置值

javascript - AngularJS Angular 翻译按钮文本丢失

angularjs - 当 angular 未在初始页面上加载时,如何使用 Protractor 的元素资源管理器选择、单击元素