1
我有一個AngularJS應用,在通過「grunt serve」服務時在瀏覽器中正常工作。但是,試圖以Chrome擴展程序運行應用程序失敗。初始頁面('/'路線)顯示,但是當我按下「/#/ products/add」鏈接時,出現'找不到網頁'的錯誤。AngularJS路由在Chrome擴展中不起作用
No webpage was found for the web address: chrome-extension://acekeiblhdhhbgoagmeegclohfncadjg/#/products/add
Error code: ERR_FILE_NOT_FOUND
爲什麼第一條路線有效,但第二條路線失敗?
我的清單目前是裸露的骨頭,但我已經嘗試過各種權限(但是根路由工作的事實使我認爲其他路由應該工作)。
{
"manifest_version": 2,
"name": "My app",
"description": "Does stuff",
"version": "1.0",
"permissions": [
"<all_urls>"
],
"browser_action": {
"default_icon": "app/images/icon.png",
"default_popup": "app/index.html"
}
}
的app.js文件是這樣的:
'use strict';
angular.module('myApp', [
'ngResource',
'ngSanitize',
'ngRoute',
'ngStorage'
])
.config(function ($routeProvider) {
$routeProvider.
when('/products', {
templateUrl: 'views/product_pages/product_list.html',
controller: 'ProductListCtrl'
}).
when('/products/add', {
templateUrl: 'views/product_pages/product_add.html',
controller: 'ProductAddCtrl'
}).
when('/products/:productId', {
templateUrl: 'views/product_pages/product_edit.html',
controller: 'ProductEditCtrl'
}).
otherwise({
redirectTo: '/products'
});
})
.run(function() {
// removed for brevity
});
而該產品添加控制器內容如下:
.controller('ProductAddCtrl', ['$scope', '$location', 'productPageCollection',
function ($scope, $location, productPageCollection) {
$scope.showError = function(ngModelController, error) {
return ngModelController.$error[error];
};
$scope.processForm = function() {
productPageCollection.add({ 'name' : $scope.product.name });
$location.path('/products');
};
}])
任何想法?
你的鏈接應該指向'#/ products/add',而不是'/#/ products/add'。 – rsanchez
感謝rsanchez,這工作 - 它讓我感到困惑,因爲鏈接工作時,不在擴展。如果您將其添加爲答案,我會接受它,謝謝。 – kmc