我正在尝试将组件Eshop_pane“添加到某个div中。组件Eshop_panel在另一个外部脚本中,所以我用$.getScript添加了这部分脚本,但这个组件不显示。你能帮我吗?
m("div.fr", [
m("div", {class: ctrl.uid}),
$.getScript("some_panel.js").done(function(script) {
m.component(Eshop_panel, {})
})
])
//some_panel.js
var Eshop_panel = {
view: function() {
return [
m("div", "Hello world!"),
]
}
};发布于 2016-07-01 09:16:51
一种选择是在实际执行任何相关代码之前加载脚本,例如:
$.getScript("some_panel.js").done(function(script) {
m.mount(someElem, { // Ie, don't actually do the mount until everything's ready
view: function() {
return m("div.fr", [
m("div", {class: ctrl.uid}),
m.component(window.Eshop_panel, {})
})
])
}
})
})或者,另一种选择是在脚本加载之前显示占位符:
$.getScript("some_panel.js").done(function(script) {
m.redraw()
})
...
m("div.fr", [
m("div", {class: ctrl.uid}),
typeof window.Eshop_panel === 'undefined' ? 'Loading...' : m.component(Eshop_panel, {})
])(我建议考虑研究像AMD或Browserify (等)这样的工具来帮助处理这类场景。也就是说,我个人不会这样做,但这可能是你想要实现的最简单的选择。)
https://stackoverflow.com/questions/35704382
复制相似问题