Controladores puramente funcionais em AngularJS
é possível usar apenas funções puras para escrever controladores em AngularJS? Não consigo entender onde manter o estado e como manipulá-lo de uma forma puramente funcional.
Estou a trabalhar com a aplicação todo na página Angular. O melhor que pude fazer foi separar as partes puras e chamá-las nos métodos de controle.var _remaining = R.compose(R.length, R.filter(R.prop('done')));
var _archive = R.filter(R.compose(R.not, R.prop('done')));
class TodoListCtrl {
constructor() {
this.todos = [
{text: 'learn angular', done: true},
{text: 'build an angular app', done: false}];
this.todoText = '';
}
remaining() {
return _remaining(this.todos);
}
archive() {
this.todos = _archive(this.todos);
}
}
Nota: estou a fazer um estudo de viabilidade para compreender se é possível utilizar técnicas puramente funcionais com AngularJS.
3
1 answers
Parece que a resposta é muito tarde. Ainda assim tentarei. Com o Angular 1, O controlador como uma função 100% pura não é possível porque
controller
está destinado a aumentar $scope
(mesmo se você usar a sintaxe controllerAs
) e este $scope
é o crux do padrão MVVM. E a visão angular é o efeito secundário deste $scope
.
Podes abstrair-te como fizeste até certo nível, mas é só isso. Nada mais do que isso.
2
Author: Harshal Patil, 2016-12-27 17:15:14