3

我有两个问题:

1) 我想为 Blaze 使用 Meteor 1.5 Dynamic Import,但所有示例和教程都是针对 React 给出的。所以我很困惑它究竟是如何使用的。谁能举个例子。

2)我正在使用来自大气js.com 的包,比如 amcharts,我只需要在管理仪表板端。如何动态导入它们?

提前致谢!

更新(解决方案):

下面是homepage.html(父模板)

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

login.html(子模板)

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

登录.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();
  }
});
4

3 回答 3

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()函数,模板将从服务器导入并调用渲染函数。

于 2017-07-11T12:48:16.280 回答
1

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

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

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

曾是

const result = zxcvbn(pwd);

const result = zxcvbn.default(pwd);
于 2017-07-03T21:58:43.230 回答
0

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

最重要的是,您可以将var chart其用作反应变量。

于 2017-06-27T02:37:03.893 回答