小编nem*_*nos的帖子

momentJS上的打字稿模块系统行为奇怪

我正在尝试使用typescript中的momentJs:取决于我用来编译typescript的模块系统,我发现了一个不同的行为,我可以使用momentJs.使用commonJs编译typescript时,一切都按预期工作,我可以按照momentJs文档:

import moment = require("moment");
moment(new Date()); //this works
Run Code Online (Sandbox Code Playgroud)

如果我在导入"时刻"时使用"system"作为打字稿模块系统,我不得不这样做

import moment = require("moment");
moment.default(new Date()); //this works
moment(new Date()); //this doesn't work
Run Code Online (Sandbox Code Playgroud)

我发现了一种解决方法,无论使用哪种打字稿模块系统,它们都能正常工作

import m = require("moment")
var moment : moment.MomentStatic;
moment = (m as any).default || m;
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个,我想理解为什么它会像这样.难道我做错了什么?谁能解释一下我发生了什么?

commonjs momentjs typescript systemjs

20
推荐指数
3
解决办法
7257
查看次数

Wpf Adorner没有回应互动


我正在尝试在wpf中创建一个叠加层(背景变暗),类似于在网络上可以找到弹出图像的叠加层.我希望它可以在应用程序的多个部分中重用,具有不同类型的内容.

这是adorner类的构造函数的临时代码(只是为了尝试)

private readonly Grid _grid = new Grid();

public DarkOverlayAdorner(UIElement adornedElement, Object content) :
        base(adornedElement)
{
     _grid.Background = new SolidColorBrush(Color.FromArgb(99, 0, 0, 0));
     IsHitTestVisible = true;
     var visual = content as UIElement;
     if (visual != null)
        _grid.Children.Add(visual);
}
Run Code Online (Sandbox Code Playgroud)

另外在课堂上(当然),我有MeasureOverride和ArrangeOverride的ovverrides给予装饰者正确的装饰元素大小,GetVisualChild和VisualChildCount ......

这里的问题是正确显示了装饰器,但是在装饰元素上没有应用任何事件或行为.例如:

AdornerLayer layer = AdornerLayer.GetAdornerLayer(textBoxProva);
layer.Add(new DarkOverlayAdorner(textBoxProva, new Button{Content = "prova"}));
Run Code Online (Sandbox Code Playgroud)

此处显示按钮,但我无法单击该按钮,并且不会对按钮鼠标悬停应用任何效果.我仍然无法弄清楚问题.

wpf adorner adornerlayer

5
推荐指数
1
解决办法
1451
查看次数

webpack和amd模块集成

我在Web应用程序中有以下场景:

我有一些包含多个amd模块的外部js文件(它们是由typescript生成的,但我现在不想使用ts-loader).这些文件中的每一个都包含多个amd模块,例如:

define("Namespace/Module1", ["require", "exports"], function (require, exports) {
    ....
}
define("Namespace/Module2", ["require", "exports"], function (require, exports) {
    ....
}
Run Code Online (Sandbox Code Playgroud)

在我的主应用程序中,我使用这些文件请求导出的模块

var a = require("Namespace/Module1").
Run Code Online (Sandbox Code Playgroud)

我使用SystemJs直到现在,使用正确的配置,一切正常,但我想开始使用webpack进行捆绑,我不知道如何将这些文件添加为"require"依赖项.

我尝试在导入requireJS后将它们添加为脚本标记,但(当然),webpack加载程序使用自己的"require"加载程序,但它不起作用.

在webpack配置中使用externals使得webpack认为它们不是模块,而是全局变量,因此它从生成的bundle中排除require("aaa")并期望全局aaa变量

function(module, exports) {

     module.exports = aaa;

}
Run Code Online (Sandbox Code Playgroud)

我如何告诉webpack,当他生成我的包时,他仍然应该使用require("命名空间/模块")但之前,在我的外部文件中调用所有" define "?

我希望我的解释是足够的,如果我做错了什么,如果我遵循不良做法,或者其他什么,请解释.

提前致谢

amd requirejs webpack

5
推荐指数
0
解决办法
350
查看次数