2012-07-31 14 views
5

Występuje dziwny problem podczas korzystania z szablonu angularjs w rozszerzeniu opartym na skrypcie opartym na treści. Idę w nieskończoną pętlę. Kiedy używam szablonu wbudowanego (używając atrybutu szablonu z ciągiem znaków), działa on prawidłowo. Czy ktokolwiek może sugerować, co robię źle?Szablony angularjs w rozszerzeniu chrome

manifest.json

{ 
    "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'); 
} 

wewnątrz contentscript.js

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

Kiedy używać inline tempate w app.js, to działa dobrze.

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

zostały również zamieszczone na angularjs grupy google https://groups.google.com/d/topic/angular/A_SVYZWPKe8/discussion

Odpowiedz

4

Wygląda na to, że zdobione.

Najpierw zadeklaruj plik szablonu w pliku manifest.json.

"web_accessible_resources" :[ 
     "contact.html" 
    ] 

Następnie użyj metody chrome.extension.getURL uzyskać bezwzględny adres URL do pliku szablonu

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

z app.js nie chrome.extension.getURL pracy – apueee

+0

mam kątową komunikat o błędzie adres URL jest niezaufany, więc dodałem $ sce.trustAsResourceUrl: '' ' $ sce.trustAsResourceUrl (chrome.extension.getURL ('html/drive-properties.html')) ' '' – Paul

Powiązane problemy