2015-11-16 23 views
13

Ich bin neu zu eckig also bitte helfen. Ich erhalte eine Fehlermeldung beim Versuch, mit Winkel ng-Controller Tag einen einfachen Code mit Winkeln zu laufen, wo ich eine Variable in html bin Anzeige, wie in einer Javascript-Datei definiert ist:angular2js: Uncaught Reference Error: System ist nicht definiert

var MainController = function($scope){ 
$scope.message = "harsh"; 

und Anzeigen in html wie in this: html page

die Fehler auf Chromkonsole ist als:

Uncaught ReferenceError: System is not defined(anonymous function) @ angular2.js:3098

die in angular2js zu einem gewissen Funktionspunkten:

System.register("angular2/src/core/facade/lang", [], true, function(require, exports, module) { 

Ich verstehe das Problem nicht. Ist es mit den angular2.js verwandt, die ich von angularjs.org eingebunden habe?

+1

'ng-controller' scheint nicht, wie etwas, das man in Angular 2. verwenden würde, würde ich wahrscheinlich hier starten wenn ich du wäre ~ https://angular.io/docs/ts/latest/quickstart.html – Phil

+0

Ich denke, das ist von eckigen nicht eckig 2 .... –

Antwort

9

Versuchen Sie, die System JS-Datei in Ihrem HTML-Code einzuschließen.

<script src="https://jspm.io/[email protected]"></script> 

prüfen diese Github Repo für jede Hilfe: https://github.com/kensplanet/angularjs2-hello-world/blob/master/index.html

Angular2 Weise davon

Plunker Link tun: http://plnkr.co/edit/36PZLTZ58bXmD4me0cpS?p=preview

index.html

<html> 
    <head> 
     <title>AngularJS2 Hello World Demo</title> 

     <script src="https://github.jspm.io/jmcriffey/[email protected]/traceur-runtime.js"></script> 
     <script src="https://jspm.io/[email protected]"></script> 
     <script src="https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js"></script> 
    </head> 

    <body> 
     <harsh></harsh> 

    <script> 
     System.import('harsh'); 
    </script> 
     </body> 
</html> 

harsh.js

var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { 
    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") return Reflect.decorate(decorators, target, key, desc); 
    switch (arguments.length) { 
     case 2: return decorators.reduceRight(function(o, d) { return (d && d(o)) || o; }, target); 
     case 3: return decorators.reduceRight(function(o, d) { return (d && d(target, key)), void 0; }, void 0); 
     case 4: return decorators.reduceRight(function(o, d) { return (d && d(target, key, o)) || o; }, desc); 
    } 
}; 
var angular2_1 = require('angular2/angular2'); 
var angularjs2Component = (function() { 
    function angularjs2Component() { 
     this.name = "Harsh"; 
    } 
    angularjs2Component = __decorate([ 
     angular2_1.Component({ 
      selector: 'harsh' 
     }), 
     angular2_1.View({ 
      template: '<h1>Hello {{name}}<h1>' 
     }) 
    ], angularjs2Component); 
    return angularjs2Component; 
})(); 
angular2_1.bootstrap(angularjs2Component); 

Ausgang:

Hello Harsh


+0

Danke für Hilfe hat es den Fehler entfernen, aber die Nachricht ist immer noch wird nicht angezeigt –

+0

In Angular2 ist ng-Controller nicht gültig. Angular2 hat keine Controller. Es hat stattdessen Komponenten. Also, dein Code wird nicht funktionieren. Syntax ist nicht ähnlich zu 1.x – kensplanet

+0

@kensplanet was sind diese Art von Fehler, warum passiert es – blackHawk

0

Mit https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.7/angular2-all.umd.js diesen Fehler zu beseitigen half. Keine externe benötigt.

0

Dies kann ziemlich offensichtlich scheinen, aber stellen Sie sicher, dass Sie ausgeführt haben:

npm install 

die node_modules in Ihrer App Stammverzeichnis Verzeichnis zu füllen. Insbesondere benötigen Sie:

node_modules/systemjs/dist/system.src.js 
-1

Wenn Sie einige Seed of AngularJS verwenden. Diese Fragen

kann sein, wenn Sie so etwas wie dies entfernen oder nicht

<!-- shims:js --> 
    <!-- endinject --> 

Manchmal Entwickler in index.html

umfassen, die mit AngularJS 2 und insbesondere Saatgutprojekt nicht vertraut ist, denken, dass sie zusätzliche Kommentare von HTML zu entfernen und merkt auch nicht, dass es injection ist.

2

I got the same issue in Angular 2.0 with TypeScript.

Im mein Problem, das ich wurde url mit einem zusätzlichen Slash anfordernden '/' wie 'http://localhost:3000/login/' (extra Strich nach 'login')

+2

Das war genau das, worauf ich stieß. seltsam. – newman

0

ich vor kurzem in das gleiche Problem lief durch Tutorial folgenden auf Plural und mit Plunker. Ich löste das Problem, indem Sie dieses Skript mit

<script src="https://code.angularjs.org/1.3.0-beta.5/angular.js" data-semver="1.3.0-beta.5" data-require="[email protected]*"></script> 

statt dessen:

<script src="https://code.angularjs.org/2.0.0-snapshot/angular2.js" data-require="[email protected]*" data-semver="2.0.0"></script> 
Verwandte Themen