Używam angular-fullstack generator do generowania nowych tras dla mojej aplikacji. Składnia to really unfamiliar i używa struktury podobnej do klasy. Jak mam z tym pracować, aby wstrzykiwać takie rzeczy jak $ scope i $ watch? Najważniejszą rzeczą, jaką chcę zrobić, jest obserwowanie zmiany dla konkretnej zmiennej. Składnia jest poniżej. Ktoś wie jak z tym pracować?
'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);
})();
Jak wstrzykiwać $ zegarek tak, że mogę zrobić coś takiego:
this.$watch('awasomeThings', function() { ... });
Doskonale, dziękuję. Teraz ma to więcej sensu. Myślę, że rzeczywiście używają ES6 i [Babel] (https://babeljs.io/) do kompilowania go do zwykłego javacript. – jOshT
Jeśli używasz ES6, możesz zadeklarować swoją DI (dla bezpiecznej minifikacji) również przez wstawienie 'static $ inject = ['$ scope'];' tuż pod definicją klasy i przed funkcją konstruktora. Jeśli twój transpilator ES6 obsługuje tę definicję statyczną. –