Mari kita tulis contoh Aplikasi Full Stack dari awal dengan Angular, Mongo, Express, dan Node.js: MEAN Stack yang terkenal… Aplikasi ini adalah daftar tugas tempat-tempat yang saya ingin suatu hari nanti dapat dikunjungi… . namun, sementara itu, mari bersenang-senang menulis beberapa kode dan melakukan beberapa perjalanan di api peta Google yang didukung oleh sistem gema berbasis Javascript!

Jadi, mari kita mulai dengan “Places2Go… dan the Mean Stack”

Kode sumber

Kode Sumber Lengkap tersedia di GitHub:

https://github.com/Pabloin/mean-stack-talk

#01 Direktur Kerja

Kami bekerja di Github dan lokal

Penyiapan #02

Buat proyek dengan Angular-cli

$ng tempat baru2go-v01

dan hasilnya adalah:

Dan hanya dengan satu perintah kita punya banyak! Proyek siap pakai dengan

  • package.json: Mungkin file yang paling penting… atau setidaknya yang pertama yang harus Anda perhatikan: kita dapat melihat ketergantungan dan menjalankan perintah

File .angular-cli.json dengan indikasi file utamanya:

Mari kita amati bahwa index.html tidak memiliki referensi apa pun untuk memulai javascript sudut, itu karena ketika kita menjalankan dengan ng serve dari sudut-cli kelas utamamain.tsdengan indikasi tentang bagaimana memulai sudut…

Pilihan lainnya adalah memasukkan berbagai javascript sudut di kepala. Tapi saya mengikuti cara sudut-cli

#03 Jalankan proyek kosong

Mari kita jalankan proyek yang kosong

$ng melayani

#04 Mulai Pengkodean — Ide

Aplikasinya tentang kota-kota yang ingin saya kunjungi, jadi yang paling alami adalah membuat kelas model “Kota”.

Saat ini saya punya tiga opsi:

  • Mulai pengkodean dari backend (yaitu: 1. Folder server dengan api rest di nodejs dengan express dan mongose ​​dengan skema kota, bisa berupa aplikasi mandiri. 2. Kemudian tulis komponen layanan di folder layanan di aplikasi sudut untuk menghubungkan ke api rest, lakukan tes kesatuan dan 3. Integrasikan layanan dengan komponen depan/MVC dari aplikasi sudut). Biasanya ini cara saya bekerja karena Anda memahami datanya.
  • Pilihan lainnya adalah mengedit komponen yang dihasilkan oleh sudut-cli pada proyek template… Saya akan melakukannya…
  • Pilihan lainnya adalah membangun komponen depan terhadap objek tiruan, dan setelah itu mengganti tiruan dengan objek nyata. Ada video bagus John Papa di https://www.youtube.com/watch?v=WAPQF_GA7Qg&t=92s yang berfungsi dengan cara ini. Ngomong-ngomong, di video Jhon Papa menggunakan cuplikan kode stode visual (dari https://github.com/johnpapa/vscode-angular2-snippets), saya menggunakan atom, dan saya akan menggunakan ide yang sama ekstensi berikut https://atom.io/packages/angular-2-typescript-snippets:

#04 Mulai Pengkodean — Target

a) Tambahkan gambar latar belakang ke halaman halo

Saya akan menyalin gambar keassets/images/bg.jpgdan mengedit styles.cssutama dengan:

Latar belakang:

b) Tambahkan pustaka partikel js

Ini hanya terdiri dari beberapa javascript dan tag div, berdasarkan https://github.com/VincentGarreau/particles.js

Setelah sedikit tes, tidak mudah di sudut2 menambahkan javascript semacam itu ke aplikasi sudut… jadi, setidaknya, dan hanya untuk tes, saya menyalin lib ke halaman baru di luar

halaman partikel

c) Buka Browser dengan peluncur node

Saya akan membuat peluncur menjadi statis hanya menginginkan beberapa konten statis: node pertama akan memulai server dengan express dan kemudian node akan memulai browser ke alamat ekspres (perpustakaan opn).

Untuk membuka halaman sebelumnya tanpa membuka aplikasi sudut:

$ npm instal buka -simpan

$ npm instal ekspres -simpan

Dan kita bisa melihat server ekspres statis dan pemanggilan ke browser

Mari kita beri tag di github

$ git tag v1.0.0

$ git dorong asal v1.0.0

Kita dapat mengamati bahwa tag ini mencakup semua repo, tidak hanya app04 dengan versi yang sedang saya kerjakan….

#05 Mulai Pengodean — Target Bootstrap

Pertama saya telah menginstal plugin berikut untuk penggunaan bootstrap yang lebih baik di Atom



Juga, karena saya menulis dengan Angular Cli, saya juga akan menggunakan/menginstal “cli” berikut untuk sudut

“NG Bootstrap — arahan Angular khusus untuk Bootstrap 4



Instal ng-bootstrap

npm install --save @ng-bootstrap/ng-bootstrap

Saya akan membuat template dengan bootstrap 4: Saya bisa menulisnya dari awal, atau saya bisa menggunakan alat desain: Saya akan menggunakan http://www.layoutit.com/ dan alat ini menghasilkan template dengan Bootstrap 3, setelah itu Saya ingin memiliki bootstrap4, jadi saya harus mengonversi kode sumber dengan alat online http://demo.bootstraptor.com/bootstrap4/

Catatan tentang desain Responsif dengan fleksibilitas:

Dengan Kotak:

Di bootstrap Anda harus berpikir dalam dua belas baris:

Dengan Flexbox:

Pendekatan lain untuk desain responsif (Jika saya tidak salah, flexbox ditujukan untuk v4)

Ayo mulai:

Mari kita lihat beberapa kode html biasa bootstrap4: Itu hanya salin & tempel sederhana dari tutorial resmi, dan komponen resmi. (di github: https://github.com/PabloEzequiel/MEAN-Stack/blob/master/app04/Places2Go-and-the-MEAN-Stack/places2go-v01/src/assets/bv1/boot1.html)

Dan hasilnya

Ini adalah v1.0.1 di GitHub: Desain HTML Statis

Dari kode bootstrap html sumber, kami melihat bahwa kami telah mengimpor dua file JS di akhir file: jquety dan bootstrap.js

Pada halaman sederhana yang telah kita buat, satu-satunya komponen yang memerlukannya hanyalah peringatan sukses o bahaya, bukan yang lain.

#06 Mulai Pengkodean — Targetkan Bootstrap dari sudut-cli

Langkah-langkah perantara:

a) Mari tambahkan Navbar

Cara mudahnya adalah dengan menambahkan html pada “app.component” dan file bootstrap CDN dengan css ke index.html

Hal yang perlu ditingkatkan: Navbar dengan warna gelap, dan bootstrap css lokal untuk aplikasi, bukan CDN.

Bootstrap di Angular

Saya memiliki dua kemungkinan dengan bootstrap sudut: https://github.com/valor-software/ng2-bootstrap yang digunakan di Tema Apa Pun dan saya terlihat memiliki dokumen yang lebih baik dan https://github.com /ng-bootstrap/ng-bootstrap yang sudah saya instal

Opsi 1: paket ng-bootstrap

Saya akan mengikuti https://ng-bootstrap.github.io/#/getting-started

$ npm install --save @ng-bootstrap/ng-bootstrap

saya juga harus menginstal bootstrap 4:

$ npm install --save [email protected]

Semuanya terlihat baik-baik saja… tapi hasilnya…

Opsi 2: paket ng2-bootstrap

Paket ng2-bootstrap digunakan oleh template tema apa pun

  • buka src/app/app.module.ts dan tambahkan
import { AlertModule } from 'ng2-bootstrap';
...
@NgModule({
   ...
   imports: [AlertModule.forRoot(), ... ],
    ... 
})
  • buka angular-cli.json dan masukkan entri baru ke dalam array gaya
"styles": [
        "styles.css",
        "../node_modules/bootstrap/dist/css/bootstrap.min.css"
      ],
"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
],

Oke! mari kita lihat bahwa ng2-bootstrap berfungsi:

Di github versi1.0.2memiliki perubahan integrasi Angular2 dengan Bootstrap

Penjelasan yang bagus tentang cara menginstal bootstrap pada sudut cli, adalah dengan https://www.npmjs.com/package/angular-cli dikatakan cara mengedit sudut-cli.json untuk memasukkan ketergantungan bootstrap dan jquery.

Saya telah mengubah versi navbar menjadi lebih baik, juga dengan bootstrap (kode sumber di http://codepen.io/PabloEzequiel/pen/WpQoLK?editors=1000) masalah dengan versi ini di sudut2 adalah ketika Anda mengubah ukuran browser, menunya jangan drop down. Alasannya adalah saya harus mengintegrasikan jQuery, dan ini sedikit kontradiksi karena kita tidak boleh menggunakan jQuery dengan sudut… Mari kita lihat bagaimana kita akan mengintegrasikannya:

Tambahkan jQuery ke Angular

$ npm install --save jquery

Setelah itu kita akan menambahkannya ke .angular-cli.json

"scripts": [
"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
],
"styles": [
"../node_modules/bootstrap/dist/css/bootstrap.css",
"styles.css"
],

dan $ ng builddan $ npm start bilah navigasi pada aplikasi sudut berfungsi!

Oke! kami telah mencapai tujuan agar navbar berfungsi di sudut2 dengan instalasi sudut-cli. Ini menyiratkan banyak langkah, misalnya memasukkan bootstrap dan jquery ke Angular-cli.json ke dalam folder dist

Bagian II: Menambahkan Komponen Baru

Kami akan membuatnya dengan Angular-cli

$ngg komponen rumah

Dalam warna hijau kita dapat melihat file yang dibuat dengan perintah ini:

Mari kita amati, folder beranda dengan semua skrip ketikan, html, css, uji di mana dihasilkan,

Mari tambahkan tag ‹app-home› untuk komponen baru:

Mari tambahkan ‹app-home› untuk komponen home:

Dan itu bekerja dengan rute

http://localhost:4201/home

Dan http://localhost:4201/about

Mari kita lihat perubahan utama pada aplikasi Angular2 untuk memasukkan rute:

Oke, kami telah mengaktifkan rute di aplikasi web kami.

Saya akan menghentikan postingan pada saat ini, dan postingan berikutnya akan membahas tentang "layanan"

Referensi

Kode sumber:



Beberapa tautan menarik

https://github.com/ng-bootstrap/ng-bootstrap