Ich verwende die angular-fullstack generator, um neue Routen für meine Anwendung zu generieren. Die Syntax lautet really unfamiliar und verwendet eine klassenähnliche Struktur. Wie arbeite ich damit, um Dinge wie $ scope und $ watch zu injizieren? Die Hauptsache, die ich tun möchte, ist auf eine Änderung für eine bestimmte Variable zu achten. Die Syntax ist unten. Kann jemand damit arbeiten?
'use strict';
(function() {
class MainController {
constructor($http) {
this.$http = $http;
this.awesomeThings = [];
$http.get('/api/things').then(response => {
this.awesomeThings = response.data;
});
}
addThing() {
if (this.newThing) {
this.$http.post('/api/things', { name: this.newThing });
this.newThing = '';
}
}
deleteThing(thing) {
this.$http.delete('/api/things/' + thing._id);
}
}
angular.module('myapp')
.controller('MainController', MainController);
})();
Wie spritze ich $ Uhr so, dass ich so etwas tun kann:
this.$watch('awasomeThings', function() { ... });
Perfekt, danke. Es macht jetzt viel mehr Sinn. Ich denke, dass sie tatsächlich ES6 und [Babel] (https://babeljs.io/) verwenden, um es zu regulärem javascript zu kompilieren. – jOshT
Wenn Sie ES6 verwenden, können Sie Ihre DI (für eine sichere Minification) auch durch Einfügen von 'static $ inject = ['$ scope'];' direkt unter der Klassendefinition und vor der Konstruktorfunktion deklarieren. Wenn Ihr ES6-Transpiler diese statische Definition unterstützt. –