2017-05-08 83 views
1

我是非常新的祕銀,並嘗試從官方網站了解教程。我已經修改了一下這個例子。這是沒有m.request的版本。下面的代碼片段不會在頁面上顯示任何內容。就好像在異步操作之後沒有觸發更改檢測(?)。你會如何使它工作?謝謝!從官方網站了解教程

const User = { 
 
    list: [], 
 
    loadList(){ 
 
     //new code starts 
 
     return new Promise((resolve, reject) => { 
 
     setTimeout(function(){ 
 
      User.list.push({name: 'Foo'}, {name: 'Bar'}); 
 
      resolve(); 
 
     }, 1000); 
 
     }) 
 
     //new code ends 
 

 
     /* original code 
 
     return m.request({ 
 
     method: "GET", 
 
     url: "https://rem-rest-api.herokuapp.com/api/users", 
 
     withCredentials: true, 
 
     }) 
 
     .then(function(result) { 
 
     User.list = result.data 
 
     }) 
 
     */ 
 
    } 
 
} 
 
const UserList = { 
 
    oninit: User.loadList, 
 
    view(){ 
 
    return m(".user-list", User.list.map((user) => { 
 
    return m(".user-list-item", user.name) 
 
    })) 
 
    } 
 
} 
 

 
m.mount(document.body, UserList)
<script src="https://cdnjs.cloudflare.com/ajax/libs/mithril/1.1.1/mithril.min.js"></script>

回答

4

自動重繪功能不setTimeout後觸發。你必須用m.redraw()手動觸發它。 更多的信息可以在docs

+1

打敗我吧,很高興你找到了你需要的信息! – Tivac