2016-07-24 42 views
0

我尝试使用打字稿将angular js移植到angularjs2。如何在angular2(typescript)上使用js库和jquery?

我不明白如何使用js库。 我主要app.component,我想初始化一些库,例如简单的一行:

$('#home').height($(window).height()); 

attribute data-spy="scroll" data-target="#header-navbar" data-offset="51"

的Index.html初始化

<body data-spy="scroll" data-target="#header-navbar" data-offset="51" class="pace-done"> 

    <pm-app>Loading App...</pm-app> 


    <!-- ================== BEGIN BASE JS ================== --> 
    <script src="assets/plugins/jquery/jquery-1.9.1.min.js"></script> 
    <script src="assets/plugins/jquery/jquery-migrate-1.1.0.min.js"></script> 
    <script src="assets/plugins/bootstrap/js/bootstrap.min.js"></script> 
    <!--[if lt IE 9]> 
     <script src="assets/crossbrowserjs/html5shiv.js"></script> 
     <script src="assets/crossbrowserjs/respond.min.js"></script> 
     <script src="assets/crossbrowserjs/excanvas.min.js"></script> 
    <![endif]--> 
    <script src="assets/plugins/jquery-cookie/jquery.cookie.js"></script> 
    <script src="assets/plugins/scrollMonitor/scrollMonitor.js"></script> 
<script src="assets/js/landing-apps.js"></script> 

    <!-- ================== BEGIN BASE JS ================== --> 
     <script src="assets/plugins/pace/pace.min.js"></script> 
    <!-- ================== END BASE JS ================== --> 
<!-- ================== END BASE JS ================== --> 
    <!-- 1. Load libraries --> 
    <!-- IE required polyfills, in this exact order --> 
    <script src="node_modules/angular2/es6/dev/src/testing/shims_for_IE.js"></script> 
    <script src="node_modules/es6-shim/es6-shim.min.js"></script> 
    <script src="node_modules/systemjs/dist/system-polyfills.js"></script> 
    <script src="node_modules/angular2/bundles/angular2-polyfills.js"></script> 

    <script src="node_modules/systemjs/dist/system.src.js"></script> 
    <script src="node_modules/rxjs/bundles/Rx.js"></script> 
    <script src="node_modules/angular2/bundles/angular2.dev.js"></script> 


    <!-- Required for http --> 
    <script src="node_modules/angular2/bundles/http.dev.js"></script> 

    <!-- Required for routing --> 
    <script src="node_modules/angular2/bundles/router.dev.js"></script> 

    <!-- 2. Configure SystemJS --> 
    <script> 
     System.config({ 
      packages: { 
       app: { 
        format: 'register', 
        defaultExtension: 'js' 
       } 
      } 
     }); 
     System.import('app/main') 
      .then(null, console.error.bind(console)); 
    </script> 

</body> 

一般main.ts

import { bootstrap } from 'angular2/platform/browser'; 

// Our main component 
import { AppComponent } from './app.component'; 

bootstrap(AppComponent); 

和空的app.component。

+0

只是把你的逻辑放在你的类的构造函数中。试过了吗?和'声明var $ = any' –

+0

Jquery没有看到html元素。什么是声明var?它如何使用? – Mediator

回答

1

为了使用jQuery,你首先必须在index.html的导入, 比你可以在组件的构造函数初始化代码

constructor(){ 
    ..... 
    $('#home').height($(window).height()); 
} 

的情况下,IDE会显示错误比你可以声明$任何类型的在这样的类的顶部: -

...some code here 
declare var $ : any; 

export class App{ 
..///code goes here 
} 

也看到可以帮助你

+0

太棒了!仍然不明白在哪里写声明var $:any; 。我使用VS 2015 – Mediator

+0

你可以在课堂上写作。 @Mediator看到我的更新 –

+0

我可以写组件装饰器 – Mediator

相关问题