2015-07-21 136 views
4

我嘗試angular2在ES5方式使用此代碼:嘗試angular2時未定義角度?

<html> 
    <head> 
      <script src="https://code.angularjs.org/2.0.0-alpha.31/angular2.sfx.dev.js"></script> 
      <script> 
      function AppComponent() {} 

      AppComponent.annotations = [ 
       new angular.Component({ 
         selector: 'my-app' 
       }), 
       new angular.View({ 
         template: '<h1>My first Angular 2 App</h1>' 
       }) 
      ]; 

      document.addEventListener('DOMContentLoaded', function() { 
       angular.bootstrap(AppComponent); 
      }); 
      </script> 
    </head> 
    <body> 
     <my-app></my-app> 
    </body> 
</html> 

在Chrome中我收到討厭的錯誤:

Uncaught ReferenceError: angular is not defined 

特別是與這行:

new angular.Component({ 
+0

我外部資源米也卡住了。 Angular 2 [顯示數據指南](https://angular.io/docs/js/latest/guide/displaying-data.html)使用這種格式,但我還沒有在其他指南中找到它。 –

回答

3

試試這個。

<!DOCTYPE html> 
<html> 

<head> 
     <link rel="stylesheet" href="style.css" /> 
     <script src="https://code.angularjs.org/2.0.0-alpha.31/angular2.sfx.dev.js"></script> 
     <script> 
       function Service() {}; 

       Service.prototype.greeting = function() { 
         return 'hello'; 
       }; 

       var Cmp = ng. 
       Component({ 
         selector: 'cmp', 
         viewInjector: [Service] 
       }). 
       View({ 
         template: '{{greeting}} world!' 
       }). 
       Class({ 
         constructor: [Service, function Cmp(service) { 
           this.greeting = service.greeting(); 
         }] 
       }); 

       document.addEventListener('DOMContentLoaded', function() { 
         ng.bootstrap(Cmp); 
       }); 
     </script> 
</head> 

<body> 
     <cmp></cmp> 
</body> 

</html> 
+1

我不知道這是否正常,但如果我命名「cmp別的東西」,它會給我一個鉻錯誤,「cmp」不匹配任何元素......什麼給了?有沒有辦法隱藏這個錯誤?因爲我包括一個「指令」,因此我不得不使用它嗎? – Rolando

+0

我想你錯過了任何地方。我已經安裝了更新名稱爲「cmp」的plunker到「anil」,但它的工作。請參閱plnkr示例http://embed.plnkr.co/9Xbw3M/preview –

+0

當角碼運行時,角度不存在。所以,扔這是一個錯誤.. –

0

在這裏你走這就是你們的榜樣中的jsfiddle

https://jsfiddle.net/rmt7m0km/1/正與角被設置爲

<body> 
    <script> 
     function AppComponent() {} 
      AppComponent.annotations = [ 
       new angular.ComponentAnnotation({ 
       selector: 'my-app' 
       }), 
       new angular.ViewAnnotation({ 
       template: '<h1>My first Angular 2 App</h1>' 
       }) 
      ]; 
      document.addEventListener('DOMContentLoaded', function() { 
       angular.bootstrap(AppComponent); 
      }); 
    </script> 
    <my-app></my-app> 
</body> 

我用https://angular.io/guide/setup

0
use ng, not angular 

    function AppComponent() { 
     this.text = 'Hello'; 
    }; 

    AppComponent.annotations = [ 
     new ng.ComponentAnnotation({ 
       selector: 'my-app' 
     }), 
     new ng.ViewAnnotation({ 
       template: '<h1>{{text}}, My first Angular 2 App</h1>' 
     }) 
    ]; 

    document.addEventListener('DOMContentLoaded', function() { 
     ng.bootstrap(AppComponent); 
    });