Angular 2Rozpoczęcie pracy z Angular 2


Uwagi

W tej sekcji omówiono sposób instalowania i konfigurowania Angular2 + do użytku w różnych środowiskach oraz IDE za pomocą narzędzi takich jak opracowane przez społeczność angular -cli .

Poprzednia wersja Angulara to AngularJS lub też nosi nazwę Angular 1. Zobacz tutaj dokumentację .

Wersje

Wersja Data wydania
4.3.3 02.08.2017
4.3.2 2017-07-26
4.3.1 2017-07-19
4.3.0 2017-07-14
4.2.0 2017-06-08
4.1.0 26.04.2017
4.0.0 23.03.2017
2.3.0 08.12.2016
2.2.0 14.11.2016
2.1.0 13.10.2016
2.0.2 2016-10-05
2.0.1 23.09.2016
2.0.0 14.09.2016
2.0.0-rc.7 13.09.2016
2.0.0-rc.6 31.08.2016
2.0.0-rc.5 09.08.2016
2.0.0-rc.4 30.06.2016
2.0.0-rc.3 21.06.2016
2.0.0-rc.2 2016-06-15
2.0.0-rc.1 2016-05-03
2.0.0-rc.0 2016-05-02

Rozpoczęcie pracy z Angular 2 z backendem node.js / expressjs (dołączony przykład http)

Stworzymy prosty „Hello World!” aplikacja z Angular2 2.4.1 (zmiana @NgModule ) z backendem node.js (expressjs).

Wymagania wstępne

Następnie uruchom npm install -g typescript lub yarn global add typescript aby zainstalować maszynę globalnie

Mapa drogowa

Krok 1

Utwórz nowy folder (i katalog główny naszego zaplecza) dla naszej aplikacji. Nazwijmy to Angular2-express .

wiersz poleceń :

mkdir Angular2-express
cd Angular2-express
 

Krok 2

Utwórz package.json (dla zależności) i app.js (do ładowania początkowego) dla naszej aplikacji node.js

package.json:

{
  "name": "Angular2-express",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.13.3",
    "express": "^4.13.3"
  }
}
 

app.js:

var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require('body-parser');

server.listen(process.env.PORT || 9999, function(){
    console.log("Server connected. Listening on port: " + (process.env.PORT || 9999));
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}) );

app.use( express.static(__dirname + '/front' ) );

app.get('/test', function(req,res){ //example http request receiver
  return res.send(myTestVar);
});

//send the index.html on every page refresh and let angular handle the routing
app.get('/*',  function(req, res, next) {
    console.log("Reloading");
    res.sendFile('index.html', { root: __dirname }); 
});
 

Następnie uruchom npm install lub yarn aby zainstalować zależności.

Teraz nasza struktura zaplecza jest kompletna. Przejdźmy do interfejsu.

Krok 3

Nasz interfejs powinien znajdować się w folderze o nazwie front w folderze Angular2-express .

wiersz poleceń:

mkdir front
cd front
 

Podobnie jak w przypadku naszego zaplecza, nasz front potrzebuje również plików zależności. Przejdźmy dalej i utwórz następujące pliki: package.json , systemjs.config.js , tsconfig.json

package.json :

{
  "name": "Angular2-express",
  "version": "1.0.0",
  "scripts": {
    "tsc": "tsc",
    "tsc:w": "tsc -w"
  },
  "licenses": [
    {
      "type": "MIT",
      "url": "https://github.com/angular/angular.io/blob/master/LICENSE"
    }
  ],
  "dependencies": {
    "@angular/common": "~2.4.1",
    "@angular/compiler": "~2.4.1",
    "@angular/compiler-cli": "^2.4.1",
    "@angular/core": "~2.4.1",
    "@angular/forms": "~2.4.1",
    "@angular/http": "~2.4.1",
    "@angular/platform-browser": "~2.4.1",
    "@angular/platform-browser-dynamic": "~2.4.1",
    "@angular/platform-server": "^2.4.1",
    "@angular/router": "~3.4.0",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "^5.0.2",
    "systemjs": "0.19.40",
    "zone.js": "^0.7.4"
  },
  "devDependencies": {
    "@types/core-js": "^0.9.34",
    "@types/node": "^6.0.45",
    "typescript": "2.0.2"
  }
}
 

systemjs.config.js:

/**
 * System configuration for Angular samples
 * Adjust as necessary for your application needs.
 */
(function (global) {
  System.config({
    defaultJSExtensions:true,
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',
      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      // other libraries
      'rxjs':                      'npm:rxjs',
      'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      app: {
        main: './main.js',
        defaultExtension: 'js'
      },
      rxjs: {
        defaultExtension: 'js'
      }
    }
  });
})(this);
 

tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "compileOnSave": true,
  "exclude": [
    "node_modules/*"
  ]
}
 

Następnie uruchom npm install lub yarn aby zainstalować zależności.

Teraz, gdy nasze pliki zależności są gotowe. Przejdźmy do naszego index.html :

index.html:

<html>
  <head>
    <base href="/">
    <title>Angular2-express</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 1. Load libraries -->
     <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <!-- 2. Configure SystemJS -->
    <script src="systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>
    
  </head>
  <!-- 3. Display the application -->
  <body>
    <my-app>Loading...</my-app>
  </body>
</html>
 

Teraz jesteśmy gotowi do stworzenia naszego pierwszego komponentu. Utwórz folder o nazwie app w naszym folderze front .

wiersz poleceń:

mkdir app
cd app
 

Zróbmy następujące pliki o nazwach main.ts , app.module.ts , app.component.ts

main.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app.module';

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);
 

app.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from "@angular/http";

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

@NgModule({
  imports:      [ 
    BrowserModule,
    HttpModule    
  ],
  declarations: [ 
    AppComponent
  ],
  providers:[ ],
  bootstrap:    [ AppComponent ]
})
export class AppModule {}
 

app.component.ts:

import { Component } from '@angular/core';
import { Http } from '@angular/http';

@Component({
  selector: 'my-app',
  template: 'Hello World!',
  providers: []
})
export class AppComponent { 
  constructor(private http: Http){
    //http get example
    this.http.get('/test')
     .subscribe((res)=>{
       console.log(res);
     });
  }
}
 

Następnie skompiluj pliki maszynopisu do plików javascript. Przejdź o 2 poziomy w górę od bieżącego katalogu (w folderze Angular2-express) i uruchom poniższe polecenie.

wiersz poleceń:

cd ..
cd ..
tsc -p front
 

Nasza struktura folderów powinna wyglądać następująco:

Angular2-express
├── app.js
├── node_modules
├── package.json
├── front
│   ├── package.json
│   ├── index.html
│   ├── node_modules
│   ├── systemjs.config.js
│   ├── tsconfig.json
│   ├── app
│   │   ├── app.component.ts
│   │   ├── app.component.js.map
│   │   ├── app.component.js
│   │   ├── app.module.ts
│   │   ├── app.module.js.map
│   │   ├── app.module.js
│   │   ├── main.ts
│   │   ├── main.js.map
│   │   ├── main.js
 

Na koniec w folderze Angular2-express uruchom w node app.js komend polecenie node app.js Otwórz swoją ulubioną przeglądarkę i sprawdź localhost:9999 aby zobaczyć swoją aplikację.

Rozpoczęcie pracy z Angular 2 bez angular-cli.

Kątowy 2.0.0-rc.4

W tym przykładzie utworzymy „Hello World!” aplikacja z tylko jednym składnikiem głównym ( AppComponent ) dla uproszczenia.

Wymagania wstępne:

  • Node.js v5 lub nowszy
  • npm v3 lub nowszy

Uwaga: Możesz sprawdzić wersje, uruchamiając node -v i npm -v w konsoli / terminalu.

Krok 1

Utwórz i wprowadź nowy folder dla swojego projektu. Nazwijmy to angular2-example .

mkdir angular2-example
cd angular2-example
 

Krok 2

Zanim zaczniemy pisać nasz kod aplikacji, dodamy 4 poniższe pliki: package.json , tsconfig.json , typings.json i systemjs.config.js .

Oświadczenie: Te same pliki można znaleźć w oficjalnym 5-minutowym Szybki start .

package.json - pozwala nam pobrać wszystkie zależności za pomocą npm i zapewnia proste wykonanie skryptu, aby ułatwić życie prostym projektom. (Powinieneś rozważyć użycie czegoś takiego jak Gulp w przyszłości do automatyzacji zadań).

{
  "name": "angular2-example",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.4",
    "@angular/compiler": "2.0.0-rc.4",
    "@angular/core": "2.0.0-rc.4",
    "@angular/forms": "0.2.0",
    "@angular/http": "2.0.0-rc.4",
    "@angular/platform-browser": "2.0.0-rc.4",
    "@angular/platform-browser-dynamic": "2.0.0-rc.4",
    "@angular/router": "3.0.0-beta.1",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.4",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.14",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings":"^1.0.4"
  }
}
 

tsconfig.json - Konfiguruje transpiler TypeScript.

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  }
}
 

typings.json - Sprawia, że TypeScript rozpoznaje biblioteki, których używamy.

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160621231320"
  }
}
 

systemjs.config.js - Konfiguruje SystemJS (można również użyć WebPACK ).

/**
 * System configuration for Angular 2 samples
 * Adjust as necessary for your application's needs.
 */
(function(global) {
  // map tells the System loader where to look for things
  var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs'
  };
  // packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
  };
  var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'forms',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade',
  ];
  // Individual files (~300 requests):
  function packIndex(pkgName) {
    packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
  }
  // Bundled (~40 requests):
  function packUmd(pkgName) {
    packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
  }
  // Most environments should use UMD; some (Karma) need the individual index files
  var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
  // Add package entries for angular packages
  ngPackageNames.forEach(setPackageConfig);
  var config = {
    map: map,
    packages: packages
  };
  System.config(config);
})(this);
 

Krok 3

Zainstalujmy zależności, pisząc

npm install
 

w konsoli / terminalu.

Krok 4

Utwórz index.html w folderze angular2-example .

<html>
  <head>
    <title>Angular2 example</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 1. Load libraries -->
    <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <!-- 2. Configure SystemJS -->
    <script src="systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>
  </head>
  <!-- 3. Display the application -->
  <body>
    <my-app></my-app>
  </body>
</html>
 

Twoja aplikacja będzie renderowana między tagami my-app .

Jednak Angular wciąż nie wie, co renderować. Aby to powiedzieć, zdefiniujemy AppComponent .

Krok 5

Utwórz podfolder o nazwie app którym możemy zdefiniować komponenty i usługi, które składają się na naszą aplikację. (W tym przypadku, będzie to po prostu zawierać AppComponent kod i main.ts ).

mkdir app
 

Krok 6

Utwórz plik app/app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <h1>{{title}}</h1>
    <ul>
        <li *ngFor="let message of messages">
            {{message}}
        </li>
    </ul>
  `
})
export class AppComponent { 
    title = "Angular2 example";
    messages = [
        "Hello World!",
        "Another string",
        "Another one"
    ];
}
 

Co się dzieje? Najpierw importujemy dekorator @Component którego używamy do nadania @Component tagu HTML i szablonu dla tego komponentu. Następnie tworzymy klasę AppComponent ze AppComponent title i messages , które możemy wykorzystać w szablonie.

Teraz spójrzmy na ten szablon:

<h1>{{title}}</h1>
<ul>
    <li *ngFor="let message of messages">
        {{message}}
    </li>
</ul>
 

Wyświetlamy zmienną title w znaczniku h1 a następnie *ngFor listę pokazującą każdy element tablicy messages za pomocą dyrektywy *ngFor . Dla każdego elementu w tablicy *ngFor tworzy zmienną message , której używamy w elemencie li . Wynik będzie:

<h1>Angular 2 example</h1>
<ul>
    <li>Hello World!</li>
    <li>Another string</li>
    <li>Another one</li>
</ul>
 

Krok 7

Teraz tworzymy plik main.ts , który będzie pierwszym plikiem, który przegląda Angular.

Utwórz plik app/main.ts

import { bootstrap }    from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';

bootstrap(AppComponent);
 

Importujemy funkcję bootstrap i klasę AppComponent , a następnie używamy bootstrap aby powiedzieć AppComponent , którego komponentu użyć jako root.

Krok 8

Czas uruchomić swoją pierwszą aplikację. Rodzaj

npm start
 

w konsoli / terminalu. Spowoduje to uruchomienie przygotowanego skryptu z package.json który uruchomi serwer lite, otworzy twoją aplikację w oknie przeglądarki i uruchomi transpiler TypeScript w trybie zegarka (więc pliki .ts zostaną przetransponowane, a przeglądarka odświeży się po zapisaniu zmian) .

Co teraz?

Sprawdź oficjalny przewodnik Angular 2 i inne tematy w dokumentacji StackOverflow .

Możesz także edytować AppComponent aby używać zewnętrznych szablonów, stylów lub dodawać / edytować zmienne komponentu. Powinieneś zobaczyć swoje zmiany natychmiast po zapisaniu plików.

Dostać się przez tego nieznośnego proxy firmy

Jeśli próbujesz uruchomić witrynę Angular2 na komputerze roboczym z systemem Windows w XYZ MegaCorp, istnieje prawdopodobieństwo, że masz problemy z dostępem przez serwer proxy firmy.

Istnieją (co najmniej) dwa menedżery pakietów, które muszą przejść przez serwer proxy:

  1. NPM
  2. Wpisy

W przypadku NPM musisz dodać następujące wiersze do pliku .npmrc :

proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
https-proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
 

W przypadku typów musisz dodać następujące wiersze do pliku .typingsrc :

proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
https-proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
rejectUnauthorized=false
 

Te pliki prawdopodobnie jeszcze nie istnieją, więc możesz je utworzyć jako puste pliki tekstowe. Można je dodać do katalogu głównego projektu (to samo miejsce co package.json lub można umieścić je w %HOMEPATH% i będą one dostępne dla wszystkich twoich projektów.

Bit, który nie jest oczywisty i jest głównym powodem, dla którego ludzie myślą, że ustawienia proxy nie działają, to %5C który jest kodem URL \ oddzielającym domenę i nazwy użytkowników. Podziękowania dla Steve'a Robertsa za to: Używanie npm za korporacyjnym proxy .pac

Zainstaluj angular2 z angular-cli

Ten przykład to szybka konfiguracja Angulara 2 i jak wygenerować szybki przykładowy projekt.

Wymagania wstępne:

Otwórz terminal i uruchom kolejno polecenia:

npm install -g @angular/cli
 

lub

yarn global add @angular/cli
 

w zależności od wyboru menedżera pakietów.

Poprzednie polecenie instaluje @ angular / cli globalnie, dodając plik wykonywalny ng do PATH.

Aby skonfigurować nowy projekt

Za pomocą terminalu przejdź do folderu, w którym chcesz skonfigurować nowy projekt.

Uruchom polecenia:

ng new PROJECT_NAME
cd PROJECT_NAME
ng serve
 

To znaczy, masz teraz prosty przykładowy projekt wykonany w Angular 2. Możesz teraz przejść do łącza wyświetlanego w terminalu i zobaczyć, co jest uruchomione.

Aby dodać do istniejącego projektu

Przejdź do katalogu głównego bieżącego projektu.

Uruchom polecenie:

ng init
 

To doda niezbędne rusztowanie do twojego projektu. Pliki zostaną utworzone w bieżącym katalogu, więc pamiętaj, aby uruchomić go w pustym katalogu.

Lokalne uruchomienie projektu

Aby zobaczyć i współpracować z aplikacją, gdy jest ona uruchomiona w przeglądarce, musisz uruchomić lokalny serwer programistyczny obsługujący pliki twojego projektu.

ng serve
 

Jeśli serwer uruchomił się pomyślnie, powinien wyświetlić adres, pod którym działa serwer. Zwykle jest to:

http://localhost:4200
 

Po instalacji ten lokalny serwer programistyczny jest podłączony do funkcji Hot Module Reloading, więc wszelkie zmiany w html, maszynopisie lub css spowodują automatyczne ponowne załadowanie przeglądarki (ale można ją wyłączyć w razie potrzeby).

Generowanie komponentów, dyrektyw, rur i usług

Polecenie ng generate <scaffold-type> <name> (lub po prostu ng g <scaffold-type> <name> ) pozwala automatycznie generować komponenty Angular:

# The command below will generate a component in the folder you are currently at
ng generate component my-generated-component
# Using the alias (same outcome as above)
ng g component my-generated-component
 

Istnieje kilka możliwych typów rusztowań, które może generować kąt-cli:

Rodzaj rusztowania Stosowanie
Moduł ng g module my-new-module
Składnik ng g component my-new-component
Dyrektywa ng g directive my-new-directive
Rura ng g pipe my-new-pipe
Usługa ng g service my-new-service
Klasa ng g class my-new-class
Berło ng g interface my-new-interface
Enum ng g enum my-new-enum

Możesz także zastąpić nazwę typu pierwszą literą. Na przykład:

ng gm my-new-module aby wygenerować nowy moduł lub ng gc my-new-component moduł, aby utworzyć komponent.

Budynek / sprzedaż wiązana

Po zakończeniu tworzenia aplikacji internetowej Angular 2 i chęci jej zainstalowania na serwerze internetowym, takim jak Apache Tomcat, wystarczy uruchomić polecenie kompilacji z ustawioną flagą produkcyjną lub bez niej. Produkcja zminimalizuje kod i zoptymalizuje ustawienia produkcyjne.

ng build
 

lub

ng build --prod
 

Następnie poszukaj w katalogu głównym projektów folderu /dist , który zawiera kompilację.

Jeśli chcesz skorzystać z mniejszego pakietu produkcyjnego, możesz także skorzystać z kompilacji szablonów Ahead-of-Time, która usuwa kompilator szablonów z ostatecznej wersji:

ng build --prod --aot
 

Testów jednostkowych

Angular 2 zapewnia wbudowane testowanie jednostkowe, a każdy element utworzony przez angular-cli generuje podstawowy test jednostkowy, który można rozszerzyć. Testy jednostkowe są pisane przy użyciu jaśminu i wykonywane przez Karmę. Aby rozpocząć testowanie, wykonaj następujące polecenie:

ng test
 

To polecenie wykona wszystkie testy w projekcie i uruchomi je ponownie przy każdej zmianie pliku źródłowego, niezależnie od tego, czy jest to test, czy kod z aplikacji.

Aby uzyskać więcej informacji, odwiedź również stronę: angular-cli github

Utrzymywanie synchronizacji Visual Studios z aktualizacjami NPM i NODE

Krok 1: Zlokalizuj pobrany plik Node.js, zazwyczaj jest on instalowany pod C: / program files / nodejs

Krok 2: Otwórz Visual Studios i przejdź do „Narzędzia> Opcje”

Krok 3: W oknie opcji przejdź do „Projekty i rozwiązania> Zewnętrzne narzędzia internetowe”

Krok 4: Dodaj nowy wpis wraz z lokalizacją pliku Node.js (C: / program files / nodejs), WAŻNE użyj przycisków strzałek w menu, aby przenieść odniesienie na górę listy.

wprowadź opis zdjęcia tutaj

Krok 5: Uruchom ponownie program Visual Studios i uruchom instalację npm dla swojego projektu z okna poleceń npm

Zanurzmy się w Angular 4!

Angular 4 jest już dostępny! W rzeczywistości Angular używa semver od Angulara 2, co wymaga zwiększenia liczby głównej po wprowadzeniu przełomowych zmian. Zespół Angular przełożył funkcje powodujące przełomowe zmiany, które zostaną wydane w Angular 4. Angular 3 został pominięty, aby móc wyrównać numery wersji podstawowych modułów, ponieważ router miał już wersję 3.

Według zespołu Angular aplikacje Angular 4 będą zajmować mniej miejsca i będą szybsze niż wcześniej. Wydzielili pakiet animacji z pakietu @ angular / core. Jeśli ktoś nie korzysta z pakietu animacji, dodatkowe miejsce w kodzie nie znajdzie się w produkcji. Składnia wiązania szablonów obsługuje teraz składnię stylu if / else. Angular 4 jest teraz kompatybilny z najnowszą wersją Typescript 2.1 i 2.2. Angular 4 będzie więc bardziej ekscytujący.

Teraz pokażę ci, jak skonfigurować Angular 4 w swoim projekcie.

Zacznijmy konfigurację Angular na trzy różne sposoby:

Możesz użyć Angular-CLI (interfejs wiersza poleceń), zainstaluje on wszystkie zależności dla Ciebie.

  • Możesz migrować z Angular 2 do Angular 4.

  • Możesz użyć github i sklonować płytę kotłową Angular4. (To najłatwiejszy.)

  • Konfiguracja kątowa za pomocą Angular-CLI (interfejs wiersza poleceń).

Przed rozpoczęciem korzystania z Angular-CLI, upewnij się, że masz zainstalowany węzeł na swoim komputerze. Tutaj używam węzła v7.8.0. Teraz otwórz terminal i wpisz następujące polecenie dla Angular-CLI.

npm install -g @angular/cli
 

lub

yarn global add @angular/cli
 

w zależności od używanego menedżera pakietów.

Zainstalujmy Angular 4 za pomocą Angular-CLI.

ng new Angular4-boilerplate
 

cd Angular4 -ilerplate Wszyscy jesteśmy gotowi na Angular 4. Jest to dość łatwa i prosta metoda

Konfiguracja kątowa poprzez migrację z Angular 2 do Angular 4

Zobaczmy teraz drugie podejście. Pokażę, jak przeprowadzić migrację Angular 2 do Angular 4. W tym celu musisz sklonować dowolny projekt Angular 2 i zaktualizować zależności Angular 2 za pomocą zależności Angular 4 w pliku package.json w następujący sposób:

"dependencies": {
    "@angular/animations": "^4.1.0",
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/core": "^4.0.1",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/material": "^2.0.0-beta.3",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@angular/router": "4.0.2",
    "typescript": "2.2.2"
   }
 

Są to główne zależności dla Angulara 4. Teraz możesz npm zainstalować, a następnie npm rozpocząć uruchomienie aplikacji. W celach informacyjnych mój pakiet.json.

Konfiguracja kątowa z projektu github

Przed rozpoczęciem tego kroku upewnij się, że masz zainstalowany git na swoim komputerze. Otwórz terminal i sklonuj kątowy 4-kocioł za pomocą poniższego polecenia:

git@github.com:CypherTree/angular4-boilerplate.git
 

Następnie zainstaluj wszystkie zależności i uruchom je.

npm install

npm start
 

I skończyłeś z konfiguracją Angular 4. Wszystkie kroki są bardzo proste, więc możesz wybrać dowolny z nich.

Struktura katalogowa kątowej płyty 4-kotłowej

Angular4-boilerplate
-karma
-node_modules
-src
   -mocks
   -models
      -loginform.ts
      -index.ts
   -modules
      -app
        -app.component.ts
     -app.component.html
      -login
    -login.component.ts
    -login.component.html
    -login.component.css
      -widget
     -widget.component.ts
     -widget.component.html
     -widget.component.css
    ........    
   -services
       -login.service.ts
    -rest.service.ts
   -app.routing.module.ts
   -app.module.ts
   -bootstrap.ts
   -index.html
   -vendor.ts
-typings
-webpack
-package.json
-tsconfig.json
-tslint.json
-typings.json 
 

Podstawowe zrozumienie struktury katalogów:

Cały kod znajduje się w folderze src.

Folder próbny służy do pozorowanych danych używanych do celów testowych.

folder modelu zawiera klasę i interfejs używany w komponencie.

folder modułów zawiera listę komponentów, takich jak aplikacja, login, widżet itp. Wszystkie komponenty zawierają maszynopis, plik HTML i plik CSS. index.ts służy do eksportowania całej klasy.

folder services zawiera listę usług używanych w aplikacji. Oddzieliłem usługę odpoczynku i inną usługę komponentu. W spoczynku usługa zawiera różne metody http. Usługa logowania działa jako mediator między komponentem logowania a usługą odpoczynku.

Plik app.routing.ts opisuje wszystkie możliwe trasy dla aplikacji.

app.module.ts opisuje moduł aplikacji jako składnik root.

bootstrap.ts uruchomi całą aplikację.

folder webpack zawiera plik konfiguracyjny webpack.

Plik package.json dotyczy wszystkich list zależności.

karma zawiera konfigurację karmy dla testu jednostkowego.

node_modules zawiera listę pakietów pakietów.

Zacznijmy od komponentu logowania. W login.component.html

<form>Dreamfactory - Addressbook 2.0 
 <label>Email</label> <input id="email" form="" name="email" type="email" /> 
 <label>Password</label> <input id="password" form="" name="password" 
 type="password" /> 
 <button form="">Login</button>
</form>
 

W login.component.ts

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Form, FormGroup } from '@angular/forms';
import { LoginForm } from '../../models';
import { LoginService } from '../../services/login.service';

@Component({
    selector: 'login',
    template: require('./login.component.html'),
    styles: [require('./login.component.css')]
})
export class LoginComponent {

    constructor(private loginService: LoginService, private router: Router, form: LoginForm) { }

    getLogin(form: LoginForm): void {
      let username = form.email;
      let password = form.password;
      this.loginService.getAuthenticate(form).subscribe(() => {
          this.router.navigate(['/calender']);
      });
    }
}
 

Musimy wyeksportować ten komponent do pliku index.ts.

export * from './login/login.component';
 

musimy ustawić trasy logowania w app.routes.ts

const appRoutes: Routes = [
   {
       path: 'login',
       component: LoginComponent
   },
   ........
   {
       path: '',
       pathMatch: 'full',
       redirectTo: '/login'
   }
];
 

W pliku głównym pliku app.module.ts wystarczy zaimportować ten składnik.

.....
import { LoginComponent } from './modules';
......
@NgModule({
    bootstrap: [AppComponent],
    declarations: [
       LoginComponent
       .....
       .....
       ]
      ..... 
  })
  export class AppModule { }
 

a potem instalacja npm i uruchomienie npm. Proszę bardzo! Możesz sprawdzić ekran logowania na swoim lokalnym hoście. W przypadku jakichkolwiek trudności można skierować płytę kątową 4-kotłową.

Zasadniczo czuję mniej budowania pakietu i szybszą reakcję dzięki aplikacji Angular 4 i chociaż znalazłem dokładnie podobny do Angular 2 w kodowaniu.