我使用文字作为字典,但第三方绑定工具只接受数组.
这是一种方式,有更好的方法吗?
var arr = [];
$.each(objectLiteral, function () { arr.push(this); });
Run Code Online (Sandbox Code Playgroud) 我正在尝试找到获取构造函数名称的通用方法.我的目标是为KnockoutJS创建一个Convention over配置框架
我的想法是迭代窗口中的所有对象,当我找到我正在寻找的构造函数时,我可以使用索引来获取构造函数的名称
代码更加柔和
(function() {
constructors = {};
window.findConstructorName = function(instance) {
var constructor = instance.constructor;
var name = constructors[constructor];
if(name !== undefined) {
return name;
}
var traversed = [];
var nestedFind = function(root) {
if(typeof root == "function" || traversed[root]) {
return
}
traversed[root] = true;
for(var index in root) {
if(root[index] == constructor) {
return index;
}
var found = nestedFind(root[index]);
if(found !== undefined) {
return found;
}
}
}
name = nestedFind(window);
constructors[constructor] = name; …Run Code Online (Sandbox Code Playgroud) 我有这个使用QueryOver API的Repository方法
public IList<Message> ListMessagesBy(string text, IList<Tag> tags, int pageIndex, out int count, out int pageSize)
{
pageSize = 10;
var likeString = string.Format("%{0}%", text);
var query = session.QueryOver<Message>()
.Where(Restrictions.On<Message>(m => m.Text).IsLike(likeString) ||
Restrictions.On<Message>(m => m.Fullname).IsLike(likeString));
if (tags.Count > 0)
{
var tagIds = tags.Select(t => t.Id).ToList();
query
.JoinQueryOver<Tag>(m => m.Tags)
.WhereRestrictionOn(t => t.Id).IsInG(tagIds)
.TransformUsing(Transformers.DistinctRootEntity);
}
count = 0;
if(pageIndex < 0)
{
count = query.ToRowCountQuery().FutureValue<int>().Value;
pageIndex = 0;
}
return query.OrderBy(m => m.Created).Desc.Skip(pageIndex * pageSize).Take(pageSize).List();
}
Run Code Online (Sandbox Code Playgroud)
我试过了两个
.TransformUsing(Transformers.DistinctRootEntity);
Run Code Online (Sandbox Code Playgroud)
和 …
是否有关于将AvalonDock与Caliburn Micro MVVM一起使用的博客或文章?谷歌搜索时找不到多少
http://avalondock.codeplex.com/
编辑:得到了投票,所以为什么不用最终解决方案更新.完整代码可以在这里找到
https://github.com/AndersMalmgren/FreePIE
大多数与avalon相关的代码都可以在这里找到
https://github.com/AndersMalmgren/FreePIE/blob/master/FreePIE.GUI/Shells/MainShellView.xaml
Sam回答后更新
为了使Caliburn成功,需要做的非常非常少.首先实现一个LayoutItemTemplateSelector
public class AutobinderTemplateSelector : DataTemplateSelector
{
public DataTemplate Template { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
return Template;
}
}
Run Code Online (Sandbox Code Playgroud)
并将其与内容控件和Caliburns View.Model附加机制一起使用
<xcad:DockingManager.LayoutItemTemplateSelector>
<avalonDock1:AutobinderTemplateSelector>
<avalonDock1:AutobinderTemplateSelector.Template>
<DataTemplate>
<ContentControl cal:View.Model="{Binding . }" IsTabStop="False" />
</DataTemplate>
</avalonDock1:AutobinderTemplateSelector.Template>
</avalonDock1:AutobinderTemplateSelector>
</xcad:DockingManager.LayoutItemTemplateSelector>
Run Code Online (Sandbox Code Playgroud) 这个问题刚刚起来,所以可以用我所做的更新问题
我通过遍历窗口对象(或用户指定的对象root)来解决它,当我找到正确的实例时,我回溯并从索引中获取名称.最终的解决方案可以在这里找到
https://github.com/AndersMalmgren/Knockout.BindingConventions
更新结束
我打算为KnockoutJS/MVC编写一个关于配置模板源引擎的约定.我从一个小客户端POC开始,立刻跑进了一个节目塞子
我的计划是使用这种语法或类似的东西
MyApp.EditCustomersViewModel = function() {
ko.templates.loadView(this);
};
Run Code Online (Sandbox Code Playgroud)
执行此操作时,它将检查tamplate缓存或使用对象名称作为密钥从服务器获取模板.问题是我无法得到原型对象的名称,我试过这个
Object.prototype.getName = function() {
var funcNameRegex = /function (.{1,})\(/;
var results = (funcNameRegex).exec((this).constructor.toString());
return (results && results.length > 1) ? results[1] : "";
};
Run Code Online (Sandbox Code Playgroud)
如果适用于这样定义的对象
function MyClass() {
}
Run Code Online (Sandbox Code Playgroud)
如果您将原型添加到上面的对象,它将无法工作,或者如果您这样定义它
MyApp = {};
MyApp.MyClass = function() {
};
Run Code Online (Sandbox Code Playgroud)
原型和范围是两个必须,所以这是一个showstopper,任何想法?
小提琴:http://jsfiddle.net/aRWLA/
编辑:这个的背景是这样的.
在服务器上,你有这样的结构
在客户端你会做
MyApp.EditCustomersViewModel = function() {
ko.templates.loadView(this);
};
Run Code Online (Sandbox Code Playgroud)
这将生成一个以对象名称为键的ajax请求,该请求将获取相关视图的所有模板
我已经安装了x86 SDK并将Microsoft.Speech.dll添加到我的项目中.该项目设置为x86.
在尝试创建SpeechSynthesizer我得到的实例时
由于以下错误,检索具有CLSID {D941651C-44E6-4C17-BADF-C36826FC3424}的组件的COM类工厂失败:80040154未注册类(HRESULT异常:0x80040154(REGDB_E_CLASSNOTREG)).
还有什么可以导致那些错误的目标平台?
我正在使用适用于 Windows 的 Docker Desktop(Linux 容器模式)运行批处理作业,涉及高级波声学模拟和游戏开发的预计算。在我的 AMD 3950x(16 核 32 线程)上,该工作大约需要 11 天。问题是,我也使用计算机进行其他工作(小型独立工作室在下班后使用计算机处理个人事务)。
所以我想暂停工作,以便我可以使用计算机执行其他操作,然后稍后再恢复。这可能吗?我使用的是最新的 Windows 版 Docker 桌面。
我正在为WPF中的AR Drone Quadcopter创建一个界面.
我在我的HUD上添加了一些东西以使其可用.
HUD上更先进的控制之一是人工地平线,它告诉飞行员飞行器当前与地平线的对齐.
我有这3个PNG



我将移动的第一个图像(工艺的当前间距)和旋转(当前的工艺卷).
我将把第二张图像放在第一张图片上,这张图片只围绕中心轴旋转,它有一定程度的刻度,可以更直观地显示工艺品的滚动.
最后一个我将放在第二个,这个图像只是一个视觉改进者.
然后我想掩盖第一张图像,这样你才能看到图像2中圆圈内的什么.
最后但并非最不重要的是,我想为其添加一个文本块并显示当前的高度
结果看起来像这样

我知道如何旋转和移动图像,但如何将图像放在彼此之上,如何屏蔽第一张图像?
编辑:感谢本我已经走到了这一步:

但我还需要翻译图像Y位置(飞机的俯仰)

当我添加translate转换时,我还翻译了Clip(Mask)如何在不移动蒙版的情况下翻译图像?
我有这个xaml
<Image Width="240" Height="240">
<Image.Source>
<DrawingImage>
<DrawingImage.Drawing>
<DrawingGroup>
<DrawingGroup>
<DrawingGroup>
<DrawingGroup.Transform>
<TransformGroup>
<RotateTransform Angle="-15" CenterX="120" CenterY="120" />
<TranslateTransform Y="-20" />
</TransformGroup>
</DrawingGroup.Transform>
<ImageDrawing ImageSource="Images\pNxVK.png" Rect="0,0,240,240" />
</DrawingGroup>
<DrawingGroup.ClipGeometry>
<EllipseGeometry Center="120,120" RadiusX="60" RadiusY="60" />
</DrawingGroup.ClipGeometry>
</DrawingGroup>
<DrawingGroup>
<DrawingGroup>
<!--<DrawingGroup.Transform>
<RotateTransform Angle="-15" CenterX="120" CenterY="120" />
</DrawingGroup.Transform>-->
<ImageDrawing ImageSource="Images\zUr8D.png" Rect="0,0,240,240" />
</DrawingGroup>
<ImageDrawing ImageSource="Images\XPZW9.png" Rect="0,0,240,240" />
</DrawingGroup>
</DrawingGroup>
</DrawingImage.Drawing>
</DrawingImage>
</Image.Source>
</Image>
Run Code Online (Sandbox Code Playgroud)
xaml的结果是(正确的大小)

如果我取消注释上面的xaml中的旋转变换我得到这个(错误的大小)

我已经让Ninject MVC与Ninject WCF一起工作以使其工作我在CreateKernel方法中添加了两行
kernel.Bind<ServiceHost>().To<NinjectServiceHost>();
KernelContainer.Kernel = kernel;
Run Code Online (Sandbox Code Playgroud)
注入了依赖项,但没有调用Dispose方法,我已经尝试使用InRequestScope并执行我自己的作用域Func返回OperationContext.Current作为Scope对象,但不调用dispose.
更新2012-09-05 此信息已过时,对于从Nuget Ninject.MV3和Ninject.Extensions.WCF(3.x)下载MVC和WCF,MVC Nuget模板将添加Ninject引导程序NinjectWebCommon.cs并添加支持svc for ninject eddit svc xml(右键单击/查看标记)并将Factory ="Ninject.Extensions.Wcf.NinjectServiceHostFactory"添加到xml节点
javascript ×3
c# ×2
wpf ×2
arrays ×1
asp.net-mvc ×1
avalondock ×1
distinct ×1
docker ×1
hibernate ×1
hud ×1
jquery ×1
knockout.js ×1
mvvm ×1
ninject ×1
prototype ×1
queryover ×1
wcf ×1
xaml ×1