我正在尝试使用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)
我不喜欢这个,我想理解为什么它会像这样.难道我做错了什么?谁能解释一下我发生了什么?
我正在尝试在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)
此处显示按钮,但我无法单击该按钮,并且不会对按钮鼠标悬停应用任何效果.我仍然无法弄清楚问题.
我在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 "?
我希望我的解释是足够的,如果我做错了什么,如果我遵循不良做法,或者其他什么,请解释.
提前致谢
adorner ×1
adornerlayer ×1
amd ×1
commonjs ×1
momentjs ×1
requirejs ×1
systemjs ×1
typescript ×1
webpack ×1
wpf ×1