2015-12-20 2 views
0

Обратите внимание, что этот геттер-сеттер имеет неопределенное значение до тех пор, пока не завершится запрос AJAX .В обработке данных веб-службы, почему m.prop не требуется?

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

ответ

1

listEven код работает, потому как m.prop и m.request возвращает GetterSetter, но при использовании m.requestGetterSetter будет заполняться возвращаемым значением от обещания. Это очень удобно.

И в последнем примере не участвует GetterSetter, это простое обещание. Таким образом, все три примера отлично работают. Чтобы решить, какой из них лучше, вы должны посмотреть на свой конкретный случай.

 Смежные вопросы

  • Нет связанных вопросов^_^