首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mithril.js - getScript

Mithril.js - getScript
EN

Stack Overflow用户
提问于 2016-03-01 00:19:50
回答 1查看 222关注 0票数 1

我正在尝试将组件Eshop_pane“添加到某个div中。组件Eshop_panel在另一个外部脚本中,所以我用$.getScript添加了这部分脚本,但这个组件不显示。你能帮我吗?

代码语言:javascript
复制
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!"),
        ]
    }
};
EN

回答 1

Stack Overflow用户

发布于 2016-07-01 09:16:51

一种选择是在实际执行任何相关代码之前加载脚本,例如:

代码语言:javascript
复制
$.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, {})
        })
      ])
    }
  })
})

或者,另一种选择是在脚本加载之前显示占位符:

代码语言:javascript
复制
$.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 (等)这样的工具来帮助处理这类场景。也就是说,我个人不会这样做,但这可能是你想要实现的最简单的选择。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35704382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档