2016-07-30 26 views
0

Immer noch die Grundlagen von MEAN lernen und ein Beispielprojekt aus diesem article erstellt, dann entschied ich mich für ein Gerüst-Tool zum Erstellen sauberer Ordnerstruktur für mein Projekt und ich konfrontiert YEOMAN und MEANJS. Verwendet npm install -g yo, npm install -g generator-meanjs und yo meanjs, alles funktioniert wie ein Charme n war ein Projekt direkt vor mir. Sie können die gesamte MEAN project here herunterladen. Nur wenige Dinge, die ich verstehe einfach nicht, trotz der Codestruktur für den ganzen Tag zu analysieren:Probleme beim Verständnis des MEAN.JS-Gerüsts und wie eckige Bootstraps

  1. Wie wird Angular hier geladen Bootstrap/zu werden? Gesamte Angular Zeug ist innerhalb public Ordner und wer boatsrapps es?
  2. Was ist die Verwendung von einigen HTML Dateien in app/views Ordner? Vor allem Dateien wie index.server.view.html und layout.server.view.html dienen als Vorlagen für alle anderen Angular View-Dateien/HTML-Dateien. Wie geht es sie sogar angeschlossen?
  3. application.js ist die AngularJS Haupt Anwendungsdatei und wer bringt dies ins Leben?

sind nicht mit so etwas wie Grunt oder Gulp oder Karma für die ersten Schnitt der Anwendung und entscheiden, kann es später zu skalieren, so wie entferne ich die, die gerade eine MEAN Barebone Architektur zu erhalten, so dass ihr leicht zu verstehen n fange an.

Antwort

0

Ja, alles Front-End-Zeug ist innerhalb public Ordner und Ihre Frage nach dem app/views Ordner ist eigentlich die Antwort darauf, wie Ihre Winkel Bootstrap ist:

  • Der app/views Ordner enthält eine einzelne Seite html, das entsprechend der Route heruntergeladen wird, die Sie an den Server angefordert haben. Wenn Sie also Ihren Server bitten, localhost:3000/ zu rendern, erhalten Sie die Datei layout.html und wahrscheinlich die Datei index.html. Ihre Layout-Datei kann eine ng-app="YourApp" haben, und das ist, was die eckige, das ist wahrscheinlich unter Ihrer application.js Datei mit etwas wie angular.module('YourApp') Bootstraps. Beachten Sie, dass 'YourApp' MUSS der Name der Direktive ng-app in der Layout-/Indexdatei sein muss, und so wird angular eingerichtet.

  • Okay, zu wissen, dass Sie beachten sollten, dass localhost:3000/home/ würde die layout.html plus home.html Dateien rendern, und so weiter. Daher sollte jede dieser app/views Seiten mehrere partials haben, um als eine SPA-Anwendung für den Benutzer zu arbeiten, zum Beispiel: localhost:3000/home#profile wäre die gleiche Ansichtsseite wie die localhost:3000/home#dashboard, was ändert sich die Winkel Teiltöne.

+0

vielen Dank für Ihre Zeit Mann. Was ich nach dem Durchlaufen von MEAN JS Dokumentation verstanden habe, ist: Sie benutzen etwas namens Swig Template-Engine, das Angular 'public' Ordneransichten zu' APP/Views' im MEAN Stack anhängt. Wie du gesagt hast, hat meine Layout-HTML-Datei nichts wie 'ng-app =" YourApp "'. – BeingSuman

+0

@BeingSuman Ihre Layoutdatei hat keine 'ng-app'-Referenz, da MEAN.JS 0.3.3 Angular [manual bootstrap] (https://docs.angularjs.org/api/ng/function/angular.bootstrap) verwendet). Wenn Sie Ihre Datei application.js überprüfen, sehen Sie folgende Zeile: 'angular.bootstrap (document, [ApplicationConfiguration.applicationModuleName]); ' – user3632710

+0

@ user3632710 Danke dafür. Der Grund, warum ich bei MEAN.JS 0.3.3 geblieben bin, hatte einige Probleme mit dem 'AngularJS Module Sub-Generator'-Befehl '$ yo meanjs: angular-module '. Aber eine Frage aus Neugier: Bietet das neueste MEAN.JS einen besseren Bootstrapping-Ansatz? – BeingSuman