2012-07-31 9 views
5

コンテンツスクリプトベースのchrome拡張でangularjsテンプレートを使用しているときに奇妙な問題が発生しています。私は無限ループに入ります。インラインテンプレート(テンプレート属性を文字列で使用)を使用すると、うまく動作します。誰でも私が間違っていることを示唆することはできますか?angularjs chrome extensionのテンプレート

{ 
    "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"] 
    } 
    ] 
} 

app.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'); 
} 

manifest.jsonを内部Iがapp.jsにインラインtempateを使用する場合、それは正常に動作します

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

をcontentscript.js。

when('/', {template: '<div>This is inline template </div>', controller: AppController}). 

も、私はそれを考え出したように見えますangularjs Googleのグループに https://groups.google.com/d/topic/angular/A_SVYZWPKe8/discussion

答えて

4

を掲載しています。

まず、manifest.jsonファイルでテンプレートファイルを宣言します。そして、app.jsから

when('/', { controller: AppController, templateUrl : chrome.extension.getURL('contact.html')}). 
+0

テンプレートファイルへの絶対URLを取得するにはchrome.extension.getURLメソッドを使用するには – apueee

+0

を働いていないchrome.extension.getURL

"web_accessible_resources" :[ "contact.html" ] 

私はその角度エラーメッセージが表示されましたURLは信頼できないので、$ sce.trustAsResourceUrlを追加しました: '' ' $ sce.trustAsResourceUrl(chrome.extension.getURL( 'html/drive-properties.html')) ' '' – Paul

関連する問題