我将以下TypeScript程序转换为ES5:
档案1:
class BaseElement extends HTMLElement {
constructor() {
super();
}
}
Run Code Online (Sandbox Code Playgroud)
文件2:
import {BaseElement} from './BaseElement';
class MyElement extends BaseElement {
constructor() {
super();
}
}
var el = new MyElement();
Run Code Online (Sandbox Code Playgroud)
将所有内容手动放入文件中,代码工作正常并在浏览器中执行,HTMLElement构造没有问题.但是,只要我通过webpack打包它,我收到以下错误消息:
Uncaught TypeError: Failed to construct 'HTMLElement': Please use the 'new' operator, this DOM object constructor cannot be called as a function.
Run Code Online (Sandbox Code Playgroud)
没有webpack,构造了以下JS代码:
var __extends = (this && this.__extends) || function (d, b) {
for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p];
function __() { this.constructor …Run Code Online (Sandbox Code Playgroud) 我想实现扩展带有属性的HTML标记,但是用角度2组件封装它.
让我们假设使用我的Angular 2组件foo的原始标记
<div foo="x"></div>
Run Code Online (Sandbox Code Playgroud)
foo属性应该将div转换为:
<div some-other-fancy-attribute="x"></div>
Run Code Online (Sandbox Code Playgroud)
首先我尝试实现一个指令,但我无法弄清楚如何使用角度/核心的渲染器向托管元素添加另一个属性.
然后我使用像[foo]这样的属性选择器来阅读Angular 2组件.我喜欢使用模板来渲染其他花式属性的想法.
但是,模板得到了标签之后的渲染,所以我最终得到:
<div foo="x">some-other-fancy-attribute="x"
Run Code Online (Sandbox Code Playgroud)
是不是有一种简单的方法来封装一些属性创建?认为这是一个微不足道的,但它让我比预期更令人头痛.
我们开发了一个包含VS 2010的约35个项目的大型解决方案,现在我们正在考虑迁移到VS 2012 Ultimate.我将解决方案文件转换为VS 2012,一般来说,一切正常.
但每当我打开解决方案时,我都会对解决方案中的某个项目A发出一些警告:"项目X无法引用""项目Y无法引用"......其中A有项目引用X和Y.当我构建解决方案时,我得到的错误是找不到每个相应DLL的元数据.
当我查看解决方案资源管理器中的引用时,它们会标有黄色警告符号.只要我点击参考,警告就会消失,图标看起来很正常.然后我可以毫无错误地构建!
每次打开解决方案时都会出现问题,受影响的项目总是相同的.
有没有人经历过这种奇怪的行为?删除和添加项目引用再次没有帮助...
先感谢您.
编辑:我检查了引用项目的csproj文件,我想知道所有具有上述问题的项目引用GUID都是小写的,其他项目是大写的.
<ProjectReference Include="..\Presentation.Net\Presentation.Net.csproj">
<Project>{04004c6b-76c8-4f2d-9fcf-5a866bb80fd4}</Project>
<Name>CMS.Presentation.Net</Name>
</ProjectReference>
Run Code Online (Sandbox Code Playgroud)
在解决方案中,GUID是大写的:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Presentation.Net", "Presentation.Net\Presentation.Net.csproj", "{04004C6B-76C8-4F2D-9FCF-5A866BB80FD4}"
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我有一个QT项目,它运行在x86 linux和ARM linux嵌入式(yocto)上.对于每个平台,我在QtCreator中定义了一个Kit,引用了相应的编译器等.
现在我想将LIBS添加到我的专业文件中,但我在每个平台上都有不同的库.我没有找到一种方法来指定依赖于编译工具包的LIBS指令.
我搜索的内容如下:
if (Kit == "Desktop")
LIBS += ...
if (Kit == "Embedded Yocto")
LIBS += ...
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?先感谢您
由于我的应用程序支持一些偏执的调试级别(每个数据赋值,代码中的每一步都写入日志目的地),我的代码在某些方法中充斥着日志调用,例如
logger.Log(LogLevel.Debug, 0, "Initializing i18n...");
Lang.Language = SystemInfo.Language;
Logger.Log(LogLevel.Debug, 0, "Default system language: " + Lang.Language);
string[] languageFiles = Directory.GetFiles(ClientEnvironment.LanguagePath);
Logger.Log(LogLevel.Debug, 0, "Initializing local language files...");
Run Code Online (Sandbox Code Playgroud)
如您所见,只有两个"真实"代码行.这使得代码有点难以阅读.我想知道是否可以在Visual Studio中指定一些自定义代码格式规则,以使日志记录行以软灰色文本颜色显示,而不是默认文本颜色.这将导致隐含突出显示"真实"代码行,从而产生更易读的代码.
我需要这样的东西:
If statement starts with "logger.Log", set foreground color to gray.
Run Code Online (Sandbox Code Playgroud)
你知道任何可以实现这种行为的插件吗?先感谢您.
我的CQRS应用程序有一些复杂的域对象.创建它们时,实体的所有属性都由用户直接指定,因此
CreateFooCommand有大约15个属性.
因此,FooCreatedEvent也有15个属性,因为我需要读取端的所有实体属性.
由于必须将命令参数分派给域对象,并且不应将FooCreatedCommand传递给域,
有一个从CreateFooCommand到域的手动映射.
由于域应该创建域事件,
这是从域Foo属性到FooCreatedEvent的另一个映射.
在读取方面,我使用DTO来表示Foo的结构,因为它存储在我的读模型中.
因此,更新读取端的事件处理程序引入了从事件参数到DTO的另一个映射.
为了实现一个简单的商业案例,我们有
我想要摆脱命令/事件参数并推送DTO对象,但这意味着域可以接收或创建DTO并将其分配给事件.
序列:
REST Controller --Command+DTO--> Command Handler --DTO--> Domain --(Event+DTO)--> Event Handler
Run Code Online (Sandbox Code Playgroud)
关于使CQRS减少实施痛苦的任何想法?
配置延迟加载后,我遇到了有关对象比较的问题.我在每个域实体类中的重写Equals方法包含以下行:
if (obj == null || !obj.GetType().Equals(GetType()))
Run Code Online (Sandbox Code Playgroud)
显然,类型比较将失败,因为obj是一个代理实例.我已经看过一些NHibernate-snippets,它们解开一个对象并返回真实实例.但是当我强制执行域驱动设计时,我不希望在我的域层中使用任何特定于ORM的代码.我还不能unproxy呼叫者侧[例如foo.Equals(Unproxy(巴))]作为呼叫者是这也不包含任何特定的ORM代码(所有NHibernate的依赖关系是由温莎注入)我的应用层的实例.
长话短说:是否有任何通用代码来获取真实实例?
让我们假设一个界面
interface IOwnedBy<T> where T : IOwner
{
T Owner { get; }
}
Run Code Online (Sandbox Code Playgroud)
和
interface IOwner
{
public int Id { get; }
}
Run Code Online (Sandbox Code Playgroud)
在我的代码的某处,我想做以下事情:
if (obj is OwnedBy<IOwner>)
{
DoSomethingWith( obj.Owner.Id );
}
Run Code Online (Sandbox Code Playgroud)
基本上,我想检查obj是否是任何OwnedBy实现.由于IOwner是任何泛型参数的类型约束,我认为这个可行.但这种情况从未得到满足.
没有使用很多反射的任何方式?
我已经在这里看到了这个问题,但是现在Windows Embedded Compact 2013已经发布,应该有一些关于Visual Studio 2012中的智能设备支持的信息.
目前,我们正在使用VS 2008和WEC 7开发工业自动化解决方案(===>我不是在询问Windows Phone开发).我们有兴趣升级到VS 2012,但我找不到任何有关的信息
a)智能设备开发何时发货
b)WEC 7开发是否仍将在VS 2012中得到支持,因为WEC 2013板卡供应商是一种稀有物种ATM
有人知道一些发布路线图的细节吗?
先感谢您.
c# ×4
angular ×1
cqrs ×1
generics ×1
javascript ×1
lazy-loading ×1
nhibernate ×1
qt ×1
qt-creator ×1
reflection ×1
typescript ×1
webpack ×1
windows-ce ×1