Meteor 1.5:Blaze的动态导入

时间:2017-06-26 11:53:54

标签: meteor meteor-blaze meteor-packages dynamic-import

我有两个问题:

1)我想使用Meteor 1.5 Dynamic Import for Blaze,但所有示例和教程都是针对React的。所以我很困惑它是如何使用的。任何人都可以举例说明。

2)我正在使用来自atmospherejs.com的软件包,比如amcharts,我只需要在Admin Dashboard端。如何动态导入它们?

提前致谢!

UPDATE(溶液):

以下是homepage.html(父模板)

<template name="homepage">
  Homepage Content
 {{> Template.dynamic template=content}}    
</template>

login.html(子模板)

<template name="login">
  You're logged in!
</template>

login.js

import '../homepage/homepage.js';
import './login.html';
API = function () {
  BlazeLayout.render("homepage",{content: 'login'});
}

export { API }

main.js

LoadLogin = function () {
  import('/imports/modules/common/login/login.js').then(function (api) {
    api.API();
  })
}

/lib/route.js

import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
FlowRouter.route('/', {
  name: 'homepage',
  action() {
    LoadLogin();
  }
});

3 个答案:

答案 0 :(得分:4)

我正在开发自己的管理面板Meteor Candy,由动态导入驱动,所以我很乐意分享我是如何工作的。

首先,我们有view.html:

<template name="admin">
    Admin
</template>

其次,我们有JS逻辑:

import { Template } from 'meteor/templating';
import { Meteor } from 'meteor/meteor';
import { Blaze } from 'meteor/blaze';

import './view.html';

API = {}

API.render = function () {
     Blaze.render(Template.admin, document.body);
}

export { API }

最后,我们只需要导入该代码并触发我们的模板呈现到页面中:

openAdmin = function () {
    import('./imports/admins').then(function (api) {
        api.render()
    })
}

一旦某些内容运行openAdmin()函数,模板将从服务器导入,并将调用渲染函数。

答案 1 :(得分:1)

使用Blaze在Meteor 1.5中动态导入模块的基本技术如下:

Template.theTemplate.events({
  'click button'(event, instance) {
    import("foo").then(Foo => {
      console.log(Foo);
    });
  }
});

请确保仔细查看导入模块的方式,因为在代码中调用模块时可能需要进行一些重构。例如,使用“zxcvbn”:

<强> WAS

const result = zxcvbn(pwd);

<强> IS

const result = zxcvbn.default(pwd);

答案 2 :(得分:0)

使用示例链接https://github.com/thesaucecode/meteor-amcharts-example/blob/master/client/example2.js非常直接,您只需在Template.MYTEMPLATE.onRendered(function(){});

中编写代码

最重要的是,您可以使用var chart作为reactive-var。