0

この getter-setter は、AJAX リクエストが完了するまで未定義の値を保持することに注意してください。

var users = m.prop([]); //default value
var doSomething = function() { /*...*/ }
m.request({method: "GET", url: "/user"}).then(users).then(doSomething)

ただし、次のコードは m.prop を使用しません。なんで?

デフォルト値を別の方法で設定していませんか?

//model
var User = {}

User.listEven = function() {
    return m.request({method: "GET", url: "/user"}).then(function(list) {
        return list.filter(function(user) {return user.id % 2 == 0});
    });
}

//controller
var controller = function() {
    return {users: User.listEven()}
}

上記のコードで問題がなく、次のコードでは役に立たない場合は?

var doSomething = function() { /*...*/ }
m.request({method: "GET", url: "/user"}).then(doSomething)

https://lhorie.github.io/mithril/mithril.request.html

4

1 に答える 1

1

との両方がを返すlistEvenため、コードは機能しますが、 を使用すると、promise から返された値が入力されます。とても便利です。m.propm.requestGetterSetterm.requestGetterSetter

最後の例では何もGetterSetter関係なく、単純な promise の使用法です。したがって、3 つの例はすべて正常に動作します。どちらが最適かを判断するには、特定のケースを検討する必要があります。

于 2015-12-21T22:36:25.287 に答える