angular2js:未捕获的参考错误:未定义系统

时间:2015-11-16 05:10:36

标签: javascript angular

我是棱角分明的,所以请帮忙。我在尝试运行带有角度 ng-controller 标记的角色的简单代码时遇到错误,其中我在javascript文件中显示的变量显示为:

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

并在html中显示,如下所示:html page

Chrome控制台上的错误如下:

  

未捕获的ReferenceError:系统未定义(匿名函数)@ angular2.js:3098

指向angular2js中的某些函数:

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

我不明白这个问题。它与angularjs.org中包含的angular2.js有关吗?

6 个答案:

答案 0 :(得分:9)

尝试在HTML中包含System JS文件。

<script src="https://jspm.io/system@0.16.js"></script>

检查此Github仓库以获取任何帮助:https://github.com/kensplanet/angularjs2-hello-world/blob/master/index.html

Angular2的做法

Plunker链接:http://plnkr.co/edit/36PZLTZ58bXmD4me0cpS?p=preview

<强>的index.html

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

        <script src="https://github.jspm.io/jmcriffey/bower-traceur-runtime@0.0.87/traceur-runtime.js"></script>
        <script src="https://jspm.io/system@0.16.js"></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);

<强>输出:

  

Hello Harsh

答案 1 :(得分:2)

  

我在使用TypeScript的Angular 2.0中遇到了同样的问题。

我是我的问题我正在请求网址额外的斜线&#39; /&#39;喜欢&#39; http://localhost:3000/login/&#39; (登录&#39;之后的额外斜线)

答案 2 :(得分:0)

使用https://cdnjs.cloudflare.com/ajax/libs/angular.js/2.0.0-beta.7/angular2-all.umd.js有助于消除此错误。无需外部system js

答案 3 :(得分:0)

这似乎有点明显,但要确保你已经运行:

npm install 

填充应用根目录中的 node_modules 目录。特别需要:

node_modules/systemjs/dist/system.src.js

答案 4 :(得分:0)

我最近遇到了关于PluralSight的教程并使用Plunker遇到了同样的问题。我使用这个脚本解决了这个问题

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

而不是:

<script src="https://code.angularjs.org/2.0.0-snapshot/angular2.js" data-require="angular.js@*" data-semver="2.0.0"></script>

答案 5 :(得分:-1)

如果你正在使用一些AngularJS种子。

如果您要在index.html

中删除或不包含此类内容,则可能出现此问题
  <!-- shims:js -->
  <!-- endinject -->

有时,不熟悉AngularJS 2和特定种子项目的开发人员认为他们从HTML中删除了额外的评论,甚至没有意识到它是injection