将humane.js与aurelia一起使用

时间:2015-06-13 22:56:23

标签: aurelia

我尝试将humane.jsaurelia一起使用,但我遇到了问题。

看起来humane.js在创建DOM时会向DOM添加一个元素,到目前为止,我发现这样做的唯一方法就是像这样强制它....

showMessage(message) {
    this.notify = humane.create();
    this.notify.log(message);
}

然而,每次调用showMessage()时,这都会创建一个新的humane实例。这会打破队列,因为每个队列都是单独渲染的。

我已尝试将create()放入视图模型的activate()方法中,但这似乎也无效。

有什么想法吗?

3 个答案:

答案 0 :(得分:4)

这解决了这个问题,我已经创建了一个人性化的自定义元素,然后将其包含在app.html中,与loading-indicator在骨架应用中的方式相同。

Thread

重要的部分是import humane from 'humane-js'; import 'humane-js/themes/original.css!'; import {inject, noView} from 'aurelia-framework'; import { EventAggregator } from 'aurelia-event-aggregator'; import { ApiStatus } from 'resources/messages'; @noView @inject(EventAggregator) export class StatusIndicator { constructor(ea) { this.ea = ea; ea.subscribe(ApiStatus, msg => this.showMessage(msg.apistatus)); } attached() { this.humane = humane.create(); } showMessage(message) { this.humane.log(message); } } ,这样可以让人性化设置正常工作。

答案 1 :(得分:1)

不幸的是,对于Aurelia来说,Humane会自动将自己作为身体的孩子附加到DOM上,Aurelia随后会替换它。

对此有一个非常非常简单的解决方法:

改变你的:

<body aurelia-app="main">

对此:

<body><div aurelia-app="main">

这样,Aurelia不会替换正文中的div,您无需担心附加()或导入出现在代码中的位置,并且人性化工作完美。

我为此提出了一个人性化的github问题。 https://github.com/wavded/humane-js/issues/69

答案 2 :(得分:0)

以下是我在Aurelia中使用humane.js的方法:

1)我在应用程序index.html中加载CSS。

2)在每个需要人性化的视图模型中,我导入人性化

从'humane-js / humane'导入humane;

我不会将人类注入视图模型。

3)我显示如下通知:

humane.log('错误:,{addnCls:'humane-libnotify-error'});

我希望这会对你有所帮助。