我尝试将humane.js与aurelia一起使用,但我遇到了问题。
看起来humane.js在创建DOM时会向DOM添加一个元素,到目前为止,我发现这样做的唯一方法就是像这样强制它....
showMessage(message) {
this.notify = humane.create();
this.notify.log(message);
}
然而,每次调用showMessage()时,这都会创建一个新的humane实例。这会打破队列,因为每个队列都是单独渲染的。
我已尝试将create()
放入视图模型的activate()
方法中,但这似乎也无效。
有什么想法吗?
答案 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'});
我希望这会对你有所帮助。