来自官网的理解教程
Understanding tutorial from the official website
我是 Mithril 的新手,正在尝试了解官方网站上的教程。我稍微修改了示例。这是没有 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>
setTimeout
后未触发自动重绘功能。必须使用 m.redraw()
手动触发它。
可以在 docs
中找到更多信息
我是 Mithril 的新手,正在尝试了解官方网站上的教程。我稍微修改了示例。这是没有 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>
setTimeout
后未触发自动重绘功能。必须使用 m.redraw()
手动触发它。
可以在 docs