最近在使用Mithril开发自己的应用(一个精巧的JS框架,仅8KB大小 Github:https://github.com/MithrilJS/mithril.js)
我在写一个图表组件时,遇到了问题,我希望在请求成功获取数据后,将数据传递给每一个需要的视图,
var m = require("mithril")
var Getdate = {
alldata: '',
fetch: function(){
return m.request({
methoads:'post',
url: 'api.cgi?(+new Date()).toString().substr(0,10),
deserialize: function(value) {return value},
withCredentials: true,
})
.then(function(result) {
Getdate.alldata = result
})
}
}
module.exports = Getdate
上述代码 导出一个Getdate模块 fetch 方法会发起请求 并将获取到的数据复制alldata
var m = require("mithril")
var Getdate = require("../model/Getdate")
import {line1} from './line1'
import {drawline} from './line1'
import {drawload} from './line1'
const chart = {
oninit: function(){Getdate.fetch()},
view: function() {
return m(line1, drawline(Getdate.alldata),drawload(Getdate.alldata))
}
}
import {line1} from './line1' ---图表组件
import {drawline} from './line1' ---绘制图形方法函数
import {drawload} from './line1' ---绘制图形方法函数
引用Getdate 模块 在mithril组件内,oninit中调用Getdate.fetch() 发起请求 在view 中 执行 函数 就可以将请求的数据渲染到图表上
效果:
感兴趣的朋友,可以去Github上,了解秘银,也许对你有所帮助