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.

Author: Debjit, 2015-07-17

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