ไม่สามารถสร้างอินสแตนซ์ของโมดูล [$ injector: unpr] ผู้ให้บริการที่ไม่รู้จัก: $ routeProvider


คำตอบ:


404

โมดูล ngRoute ไม่ได้เป็นส่วนหนึ่งของangular.jsไฟล์แกนอีกต่อไป หากคุณยังคงใช้ $ routeProvider ต่อไปคุณจะต้องรวมangular-route.jsไว้ใน HTML ของคุณ:

<script src="angular.js">
<script src="angular-route.js">

การอ้างอิง API

คุณต้องเพิ่มngRouteเป็นการอ้างอิงสำหรับแอปพลิเคชันของคุณ:

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

หากคุณวางแผนที่จะใช้งานangular-ui-routerหรือสิ่งที่คล้ายกันเพียงแค่ลบการ$routeProvider พึ่งพาจากโมดูลของคุณ.config()และแทนที่ด้วยผู้ให้บริการที่เกี่ยวข้องในการเลือก (เช่น$stateProvider) จากนั้นคุณจะใช้การui.routerพึ่งพา:

var app = angular.module('MyApp', ['ui.router', ...]);

2
ดูเหมือนว่าui-routerโครงการอาจเป็นทางเลือกที่ยืดหยุ่นมากขึ้นถ้าคุณเริ่มต้นจากศูนย์ ( github.com/angular-ui/ui-router )
gatoatigrado

2
@gatoatigrado - ฉันเพิ่งรู้ว่าui.stateไวยากรณ์เก่าเมื่อฉันอัปเกรดแอปของฉันจากangular-ui-router v0.0.1เป็นv0.2.0ซึ่งหมายความว่าตอนนี้มันใช้ui.routerชื่อ ฉันขอโทษสำหรับความสับสนใด ๆ ที่เกิดขึ้น
Scotty.NET

3
ที่อยู่ CDN อยู่ที่angular-route.jsใด
Sahar Sany

@SaharSany - เอกสารสำหรับangular-routeให้ที่อยู่ CDN เช่นเดียวกับตัวเลือกอื่น ๆ สำหรับตอนui-routerนี้ไม่มี CDN ที่ฉันรู้
Scotty.NET

3
ui-routerดูเหมือนจะไม่ได้อยู่ใน CDN ของตัวเองแม้ว่าจะอยู่ใน cdnjs: cdnjs.com/l ไลบรารี/angular
Nick McCurdy

41

เพิ่มคำตอบของสก็อต:

ตัวเลือก 1: รวมไว้ในไฟล์ JS ของคุณ:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.0rc1/angular-route.min.js"></script>

ตัวเลือกที่ 2: หรือใช้ URL เพื่อดาวน์โหลด ' angular-route.min.js ' ไปยังพื้นที่ของคุณ

จากนั้น (สิ่งใดก็ตามที่คุณเลือก) เพิ่ม 'ngRoute' นี้เป็นการอ้างอิง

อธิบายว่า: var app = angular.module('myapp', ['ngRoute']);

ไชโย !!!


5
ขออภัย แต่ฉันต้องยอมรับว่ามันคล้ายกับคำตอบที่ให้ไว้แล้วใช่ไหม?
Scotty.NET

2
... ที่อื่นฉันพบว่าผู้คนไม่สามารถค้นหาลิงก์ / URL เพื่อดาวน์โหลดหรืออ้างอิง 'angular-route.min.js' นั่นคือสิ่งที่ฉันให้ในคำตอบและใช่ฉันเห็นด้วยกับ 'ngRoute' การพึ่งพาที่คุณพูดถึงดังนั้นฉันจึงเพิ่มสิ่งนั้นในคำตอบของฉันด้วย
mayankcpdixit

ฉันรู้สึกเบื่อมากกับห้องสมุด js แน่นอนจะต้องมีวิธีที่ดีกว่าการหาโมดูลสแต็คที่เหมาะสมโดยโมดูล

นี่คือสิ่งที่มันทำ @SamanthaAtkins หากคุณรู้ว่าสิ่งใดที่จำเป็นคุณต้องฉีดการพึ่งพาและรวมไฟล์ JS หากคุณไม่มีรหัสสำหรับการขึ้นต่อกันนั้น แม้ว่าฉันจะขอบคุณวิธีที่ดีกว่าถ้ามีคนแนะนำ
mayankcpdixit

3

ในกรณีของฉันมันเป็นเพราะไฟล์ถูกลดขนาดด้วยขอบเขตที่ไม่ถูกต้อง ใช้ Array!

app.controller('StoreController', ['$http', function($http) {
    ...
}]);

ไวยากรณ์กาแฟ:

app.controller 'StoreController', Array '$http', ($http) ->
  ...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.