2012-07-31 6 views
5

Tôi đang gặp sự cố lạ khi sử dụng mẫu angularjs trong tiện ích chrome dựa trên tập lệnh nội dung. Tôi đi trong một vòng lặp vô hạn. Khi tôi sử dụng một mẫu nội tuyến (sử dụng thuộc tính mẫu với một chuỗi), nó hoạt động tốt. Ai có thể gợi ý những gì tôi đang làm sai?mẫu angularjs trong tiện ích mở rộng 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'); 
} 

bên contentscript.js

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

Khi tôi sử dụng tempate nội tuyến trong app.js, nó hoạt động tốt.

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

cũng đã được đăng trên angularjs google nhóm https://groups.google.com/d/topic/angular/A_SVYZWPKe8/discussion

Trả lời

4

Dường như tôi figured it out.

Đầu tiên khai báo tệp mẫu trong tệp manifest.json.

"web_accessible_resources" :[ 
     "contact.html" 
    ] 

Sau đó, sử dụng phương pháp chrome.extension.getURL để có được url tuyệt đối để các tập tin mẫu

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

từ app.js chrome.extension.getURL không làm việc – apueee

+0

Tôi nhận được thông báo lỗi rằng góc url không đáng tin cậy, vì vậy tôi đã thêm $ sce.trustAsResourceUrl: '' ' $ sce.trustAsResourceUrl (chrome.extension.getURL ('html/drive-properties.html')) ' '' – Paul