JavaScript, AngularJS, Meteor: классоподобный контроллер и помощники

#javascript #angularjs #meteor #controller

#javascript #angularjs #meteor #контроллер

Вопрос:

Я разработчик Java EE и новичок в JS / AngularJS / Meteor. Я прочитал большинство вопросов / ответов, включая класс и помощника, и никакой полезной информации по моим вопросам.

Я перешел на AngularJS и Meteor одновременно и без основательных знаний js.

При чтении примера Meteor на основе angularjs я увидел

 class TodosListCtrl {
constructor($scope) {
$scope.viewModel(this);// cannot find explanation

this.helpers({
  tasks() {
    return Tasks.find({});
  }
})
}
}

...some lines skipped...
])
.component('todosList', {
templateUrl: 'imports/components/todosList/todosList.html',
controller: ['$scope', TodosListCtrl]
});
  

Q1: Очевидно, что он объявляет контроллер классоподобным методом. Но я не могу найти какую-либо информацию о том, как таким образом объявить новый «объект» и добавить переменные / методы. Это на уровне JS, angularjs или meteor?

Q2: Я не могу найти объяснение по поводу $ scope.ViewModel(this) и я предполагаю, что это похоже на $ scope = this, но почему и как за сценой?

Q3: функция tasks() внутри помощника вызывается при запуске приложения, как я могу поместить этот метод вне помощника, чтобы контролировать время вызова, например, вызвать его нажатием кнопки?

Комментарии:

1. Когда я начал изучать angularjs, reactjs или даже jquery, мне было трудно понять эти фреймворки / библиотеки, потому что у меня не было никаких предварительных знаний javascript. Итак, я изучил javascript, и затем эти фреймворки начали обретать смысл. Итак, я бы посоветовал вам иметь достаточное представление о javascript, прежде чем вы погрузитесь в эти удивительные фреймворки / библиотеки.

2. @paul-shuvo Я согласен с вами, и я бы сделал это, если бы у меня было время, но, к сожалению, у меня нет времени следовать пути js-angular-meteor. Вот почему мне немедленно нужны некоторые рекомендации.

3. Приведенный выше код специфичен для Meteor. В обычном приложении Angular не было бы $scope.viewModel or this.helpers .