簡體   English   中英

AngularJS中的純功能控制器

[英]Purely Functional Controllers in AngularJS

是否可以僅使用純函數在AngularJS中編寫控制器? 我無法理解在哪里保持狀態以及如何以純粹的功能方式操縱它。

我正在使用Angular主頁上的todo應用程序。 我能做的最好的事情就是將純部分分開並在控制器方法中調用它們。

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);
    }
}

注意:我正在進行可行性研究,以了解是否可以使用AngularJS的純函數技術。

似乎答案很晚。 不過我仍會嘗試。 使用Angular 1,控制器作為100%純函數是不可能的,因為controller旨在增加$scope (即使你使用controllerAs語法),這個$scope是MVVM模式的關鍵。 角度視圖是這個$scope的副作用。

你可以抽象到某種程度,但就是這樣。 沒有比這更好的了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM