MEAN.JS - Açılı Tek Sayfa Oluşturma

MEAN yığınında, Angular, temiz bir Model Görünüm Denetleyicisi (MVC) yöntemiyle tek sayfalı uygulamaların oluşturulmasına izin veren ikinci JavaScript çerçevesi olarak bilinir.

Bir ön uç Çerçeve olarak AngularJS aşağıdaki şeyleri kullanır -

  • Dosyaları ve kitaplıkları yüklemek için Bower'ı kullanır

  • Angular uygulama yapısı için denetleyicileri ve hizmetleri kullanır

  • Farklı HTML sayfaları oluşturur

  • AngularJS uygulaması için yönlendirme ve hizmetleri işlemek için ngRoute modülünü kullanır

  • Bir uygulamayı çekici hale getirmek için Bootstrap kullanır

Açısal Uygulamamızı Kurmak

Node.js arka ucu ve AngularJS ön ucu olan basit bir uygulama oluşturalım. Angular uygulamamız için, isteyeceğiz -

  • İki farklı sayfa (Ev, Öğrenci)

  • Her biri için farklı bir açısal denetleyici

  • Sayfaları değiştirirken sayfa yenileme yok

Bower ve Bileşenleri Çekme

Bootstrap ve angular gibi uygulamamız için belirli dosyalara ihtiyacımız olacak. Bower'a bu bileşenleri bizim için getirmesini söyleyeceğiz.

Öncelikle, komut terminalinizde aşağıdaki komutu uygulayarak makinenize bower kurun -

npm install -g bower

Bu, bower'ı kuracak ve onu sisteminizde küresel olarak erişilebilir kılacaktır. Şimdi .bowerrc ve bower.json dosyalarını kök klasörünüzün altına yerleştirin. Bizim durumumuzdamean-demo. Her iki dosyanın içeriği de aşağıdaki gibidir -

.bowerrc - Bu, Bower'a dosyalarımızı nereye koyacağını söyleyecek -

{
   "directory": "public/libs"
}

bower.json - Bu package.json'a benzer ve Bower'a hangi paketlerin gerekli olduğunu söyleyecektir.

{
   "name": "angular",
   "version": "1.0.0",
   "dependencies": {
      "bootstrap": "latest",
      "angular": "latest",
      "angular-route": "latest"
   }
}

Ardından, aşağıdaki komutu kullanarak Bower bileşenlerini kurun. Bower'ın public / libs altındaki tüm dosyaları çektiğini görebilirsiniz .

$ bower install

Dizin yapımız aşağıdaki gibi olacaktır -

mean-demo
   -app
   -config
   -node_modules
   -public
      -js
         --controllers
   -MainCtrl.js
   -StudentCtrl.js
      --app.js
      --appRoutes.js
   -libs
   -views
      --home.html
   --student.html
      -index.html
   -bower.json
   -package.json
   -server.js

Açısal Denetleyiciler

Denetleyicimiz (public / js / controllers / MainCtrl.js) aşağıdaki gibidir -

angular.module('MainCtrl', []).controller('MainController', function($scope) {
   $scope.tagline = 'Welcome to tutorials point angular app!';
});

Controller public / js / controllers / StudentCtrl.js aşağıdaki gibidir -

angular.module('StudentCtrl', []).controller('StudentController', function($scope) {
   $scope.tagline = 'Welcome to Student section!';
});

Açısal Yollar

Rota dosyamız (public / js / appRoutes.js) aşağıdaki gibidir -

angular.module('appRoutes', []).config(['$routeProvider',
   '$locationProvider', function($routeProvider, $locationProvider) {
   $routeProvider
      // home page
      .when('/', {
         templateUrl: 'views/home.html',
         controller: 'MainController'
      })
      // students page that will use the StudentController
      .when('/students', {
         templateUrl: 'views/student.html',
         controller: 'StudentController'
      });
   $locationProvider.html5Mode(true);
}]);

Artık denetleyicilerimiz ve rotalarımız olduğuna göre, hepsini birleştirip bu modülleri ana public / js / app.js'mize aşağıdaki gibi enjekte edeceğiz -

angular.module('sampleApp', ['ngRoute', 'appRoutes', 'MainCtrl', 'StudentCtrl']);

Dosyayı görüntüle

Angular, index.html dosyasındaki <div ng-view> </div> 'e enjekte edilebilen şablon dosyasını kullanır. Ng-view direktifi, konfigürasyona bağlı olarak karşılık gelen bir görünümün (HTML veya ng-şablon görünümü) yerleştirilebileceği bir yer tutucu oluşturur. Açısal görünümler hakkında daha fazla bilgi için bu bağlantıyı ziyaret edin .

Yönlendirmeye hazır olduğunuzda, daha küçük şablon dosyaları oluşturun ve bunları index.html dosyasına enjekte edin . İndex.html dosyasını kod parçacığı aşağıdaki olacak -

<!doctype html>
<html lang="en">
   <head>
      <meta charset="UTF-8">
      <base href="/">
      <title>Tutorialspoint Node and Angular</title>
      
      <!-- CSS -->
      <link rel="stylesheet" href="libs/bootstrap/dist/css/bootstrap.min.css">
      <link rel="stylesheet" href="css/style.css"> <!-- custom styles -->
      
      <!-- JS -->
      <script src="libs/angular/angular.min.js"></script>
      <script src="libs/angular-route/angular-route.min.js"></script>
      
      <!-- ANGULAR CUSTOM -->
      <script src="js/controllers/MainCtrl.js"></script>
      <script src="js/controllers/StudentCtrl.js"></script>
      <script src="js/appRoutes.js"></script>
      <script src="js/app.js"></script>
   </head>
   <body ng-app="sampleApp" ng-controller="MainController">
      <div class="container">
      
         <!-- HEADER -->
         <nav class="navbar navbar-inverse">
            <div class="navbar-header">
               <a class="navbar-brand" href="/">Tutorial</a>
            </div>
            <ul class="nav navbar-nav">
               <li><a href="/students">Students</a></li>
            </ul>
         </nav>
         <!-- ANGULAR DYNAMIC CONTENT -->
         <div ng-view></div>
      </div>
   </body>
</html>

Çalışan Uygulama

Yürütme

Bu uygulama için kaynak kodunu bu bağlantıdan indirebilirsiniz . Zip dosyasını indirin; sisteminize çıkartın. Terminali açın ve npm modül bağımlılıklarını kurmak için aşağıdaki komutu çalıştırın.

$ cd mean-demo
$ npm install

Sonra aşağıdaki komutu çalıştırın -

$ node start

Aşağıdaki resimde gösterildiği gibi bir onay alacaksınız -

Şimdi tarayıcıya gidin ve yazın http://localhost:3000. Sayfayı aşağıdaki resimde gösterildiği gibi alacaksınız -

Öğrenciler bağlantısına tıklayın, aşağıdaki ekranı göreceksiniz -

Angular ön ucumuz şablon dosyasını kullanacak ve onu index.html dosyamızdaki <div ng-view> </div> içine enjekte edecektir . Bunu bir sayfa yenilemeden yapacaktır.