0

我創建了一個網頁API項目的工作後,我要創建一個頁面的應用,但收到的一些錯誤,所以我張貼我下面的代碼:AngularJS SPA不是在網絡API項目

我angularjs代碼:

var app = angular.module('myApp', ['ngRoute']); 

app.config('$routeProvider', function ($routeProvider) { 
    $routeProvider 
     .when('/',{ 
     templateUrl: 'tpl/users.html', 
     controller: 'myController' 
    }) 
    .when('/addusers', { 
     templateUrl: 'tpl/addusers.html', 
     controller: 'addusers' 
    }) 
    .when('/admin',{ 
     templateUrl: 'tpl/admin.html', 
     controller: 'admin' 
    }); 
}); 

app.controller('myController', function ($scope) { 
    $scope.message = 'Home'; 
}); 

app.controller('admin', function ($scope) { 
    $scope.message = 'Admin'; 
}); 

app.controller('addusers', function ($scope) { 
    $scope.message = 'addusers'; 
}); 

和我的html頁面:

<html ng-app="myApp"> 
<head> 
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular.min.js"></script> 
    <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.25/angular-route.js"></script> 
    <script src="app/app.js"></script> 
</head> 
<body ng-controller="myController"> 
    <a href="/">Home</a> 
    <a href="#/admin">Admin</a> 
    <a href="#/addusers">Add Users</a> 
    <br /> 
    <div ng-view> </div> 
</body> 
</html> 

並獲得angularjs錯誤如下:

Error: [$injector:modulerr] http://errors.angularjs.org/1.2.25/$injector/modulerr?p0=myApp&p1=%5Bng%3Aareq%5D%20http%3A%2F%2Ferrors.angularjs.org%2F1.2.25%2Fng%2Fareq%3Fp0%3Dfn%26p1%3Dnot%2520a%2520function%252C%2520got%2520string%0AD%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A6%3A450%0ADb%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A19%3A106%0AWa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A19%3A193%0Asc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A32%3A423%0Ad%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A34%3A398%0Ae%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A33%3A386%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Ae%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A33%3A207%0Agc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A36%3A309%0Afc%2Fc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A18%3A170%0Afc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A18%3A387%0AXc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A17%3A415%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A214%3A469%0Aa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A145%3A67%0Aoe%2Fc%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A31%3A223%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Aoe%2Fc%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A31%3A207%0AEventListener.handleEvent*sb%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A143%3A241%0Aa%2F%3C%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A150%3A402%0Ar%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A7%3A288%0Aa%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A149%3A381%0AS.prototype%5Bc%5D%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A154%3A57%0AS.prototype.ready%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A145%3A122%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A214%3A447%0A%40http%3A%2F%2Fajax.googleapis.com%2Fajax%2Flibs%2Fangularjs%2F1.2.25%2Fangular.min.js%3A6%3A2%0A 

回答

1

您的控制器定義(依賴注入部分)是錯誤的。 您可以按照john papa's style guide for angular

var app = angular.module('myApp', ['ngRoute']); 
app.config(['$routeProvider', function ($routeProvider) { 

    $routeProvider.when('/',{ 
     templateUrl: 'tpl/users.html', 
     controller: 'myController' 
    }).when('/addusers', { 
     templateUrl: 'tpl/addusers.html', 
     controller: 'addusers' 
    }).when('/admin',{ 
     templateUrl: 'tpl/admin.html', 
     controller: 'admin' 
    }); 
}]); 

app.controller('myController', ['$scope', function ($scope) { 
    $scope.message = 'Home'; 
}]); 

app.controller('admin', ['$scope', function ($scope) { 
    $scope.message = 'Admin'; 
}]); 

app.controller('addusers', ['$scope', function ($scope) { 
    $scope.message = 'addusers'; 
}]); 
+0

非常感謝它的工作正常 –

+0

@scokmen,我的壞,我無意中投了這個:(我會投票它,所以當我讓我的時候,對不起回合。 – Rob

+0

@scokmen,它看起來像你必須先編輯我可以投票它。再次,我的歉意 – Rob

0

我在角上SPA的工作,以及並得到了相同的錯誤最近,

這是什麼,我發現我使用ngRoute時發生。 ngRoute的作品,但它似乎對我來說非常混亂,不斷給我這個錯誤和其他一些。

我可能只是使用它錯了,但我建議您切換到「UI-Router

它應該清理你做路由的方式,使其更易於整個項目處理的對象。

+0

感謝理查德Sussan我將在今後的使用它,但有什麼錯我的代碼。我已經將它與許多例子相匹配,但沒有得到任何錯誤,並得到相同的錯誤 –

+0

所以通過該鏈接錯誤說:「參數'FN'不是一個函數,得到了字符串」。我發現[this](http://stackoverflow.com/questions/19095129/argument-fn-is-not-a-function-got-string),它解決了這個問題。這可能是您的問題中未提供的其他代碼中的錯誤。 –

0

您正在使用的配置錯誤。您不需要使用'$ routeProvider'作爲參數。

錯誤

app.config('$routeProvider', function ($routeProvider) { 
}); 

正確

app.config(function ($routeProvider) { 
}); 

此外,角不再使用ngRoute開箱。這是你需要包括(注意版本)一個單獨的文件:

https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.8/angular-route.js