我正在使用KnockoutJS并拥有主视图和视图模型.我想要一个对话框(jQuery UI one)弹出另一个视图,该视图要绑定一个单独的子视图模型.
使用AJAX检索对话框内容的HTML,所以我希望能够ko.applyBindings在请求完成后调用,并且我想将子视图模型绑定到通过对话框div中的ajax加载的HTML部分.
这实际上是可行的还是我需要在页面最初加载然后调用ko.applyBindings一次时加载我的所有视图和查看模型?
我需要根据存储在数据库中的类型创建一个通用对象.我该如何实现这一目标?下面的代码(不会编译)解释了我的意思:
string typeString = GetTypeFromDatabase(key);
Type objectType = Type.GetType(typeString);
//This won't work, but you get the idea!
MyObject<objectType> myobject = new MyObject<objectType>();
Run Code Online (Sandbox Code Playgroud)
有可能做这种事吗?
谢谢
我一直在使用MSpec编写我的单元测试,并且更喜欢BDD风格,我认为它更具可读性.我现在正在使用MSpec不支持的Silverlight,所以我不得不使用MSTest,但仍然希望保持BDD风格,所以我想尝试一种方法来做到这一点.
只是为了解释我想要实现的目标,这就是我如何编写MSpec测试
[Subject(typeof(Calculator))]
public class when_I_add_two_numbers : with_calculator
{
Establish context = () => this.Calculator = new Calculator();
Because I_add_2_and_4 = () => this.Calculator.Add(2).Add(4);
It should_display_6 = () => this.Calculator.Result.ShouldEqual(6);
}
public class with_calculator
{
protected static Calculator;
}
Run Code Online (Sandbox Code Playgroud)
因此,对于MSTest,我会尝试像这样编写测试(虽然你可以看到它不起作用,因为我已经输入了2个TestInitialize属性,但是你得到了我正在尝试做的...)
[TestClass]
public class when_I_add_two_numbers : with_calculator
{
[TestInitialize]
public void GivenIHaveACalculator()
{
this.Calculator = new Calculator();
}
[TestInitialize]
public void WhenIAdd2And4()
{
this.Calculator.Add(2).Add(4);
}
[TestMethod]
public void ThenItShouldDisplay6()
{
this.Calculator.Result.ShouldEqual(6);
}
}
public class with_calculator
{
protected Calculator Calculator {get;set;} …Run Code Online (Sandbox Code Playgroud) 我一直在使用Caliburn Micro MVVM框架,并且在防护方法方面遇到了一些问题.
我有一个视图模型:
public class MyViewModel : PropertyChangedBase, IMyViewModel
Run Code Online (Sandbox Code Playgroud)
财产:
public DateTime? Date
{
get{return this.date; }
set
{
this.date = value;
this.NotifyOfPropertyChange(() => Date);
}
}
Run Code Online (Sandbox Code Playgroud)
另外,我的视图模型中有一个方法,带有一个保护方法
public void Calculate()
{
// ..some code..
}
public bool CanCalculate()
{
return this.Date.HasValue;
}
Run Code Online (Sandbox Code Playgroud)
我的视图中有一个按钮:
我遇到的问题是CanCalculate方法在加载时执行,但是当我在文本字段中输入值时,它不会重新评估CanCalculate方法.我在设置数据绑定视图模型属性时触发属性更改事件,那么可能是什么问题?
我正在使用谷歌地方自动完成控件,它创建了一个用于下拉类的元素pac-container.
我在ember应用程序中使用自动完成功能,当我完成它时,DOM元素自动完成必然会被删除,但pac-container元素仍然存在,甚至认为它是隐藏的.下次我实例化一个新的自动完成时,pac-container会创建一个新的并保留旧的.我似乎无法在API上找到类似于dispose方法的内容,那么有没有正确的方法呢?如果不是,我想我应该使用jquery来清理元素.
我一直在使用knockoutjs和backbone来创建单页JavaScript应用程序.我使用骨干模型和淘汰视图模型,但我也有很多UI控件,我已经使用jQuery UI小部件工厂来创建.
我的问题是如何更好地构建我的jQuery小部件中的代码.像knockout/backbone/ember这样的框架可以很容易地在主应用程序中实现MVC类型模式,但是当涉及到小部件开发时,我最终会拥有一大堆输出和操作DOM元素的代码.我仍然可以测试这个,因为jquery可以很容易地查询DOM,但代码非常难看.理想情况下,我想在我的小部件中也有一个MVC模式.
是否有任何图书馆或框架旨在帮助解决这个问题?
我有一个包含两个字段的简单结构; 一个存储一个对象,另一个存储DateTime.我这样做是因为我想在Dictionary中存储对象,但也有DateTime标记.
我有一个返回我的结构的方法,我现在已经确定该方法也应该能够返回null,所以我使我的结构可以为空.我现在想知道我是否应该让我的结构成为一个类,所以它是一个引用类型?
我一直在玩Entity Framework 4,使用模型驱动的方法从我的实体生成数据库脚本.这很好,但我不确定这在数据库版本控制时是如何工作的.我猜我是否想要使用活动记录类型迁移框架,我必须以相反的方式工作并从我的数据库生成我的实体?有没有办法使用模型驱动的方法并正确地版本化数据库?
.net entity-framework database-migration database-versioning
我有一个动作:
{{action create target="controller"}}
Run Code Online (Sandbox Code Playgroud)
我已将其定位到绑定控制器(而不是路由器),如下所示:
App.AddBoardController = Ember.Controller.extend
create: ->
App.store.createRecord App.Board, {title: @get "boardName"}
App.store.commit()
//TODO: Redirect to route
Run Code Online (Sandbox Code Playgroud)
如何从控制器操作重定向回路由?
我是rails的新手,我正试图弄清楚如何使嵌套布局工作; 我假设他们有点像.net母版页?
我已按照本指南操作,并在布局目录中创建了一个application.erb.html,其中包含:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title><%= @page_title or 'Page Title' %></title>
<%= stylesheet_link_tag 'layout' %>
<style type="text/css"><%= yield :stylesheets %></style>
</head>
<body>
<%= yield(:content) or yield %>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
并将我现有的一个布局修改为:
<% content_for :stylesheets do %>
<% end -%>
<% content_for :content do %>
<p style="color: green"><%= flash[:notice] %></p>
<%= yield %>
<% end -%>
<% render :file => 'layouts/application' %>
Run Code Online (Sandbox Code Playgroud)
当我在浏览器中查看我的一个视图时,绝对没有任何内容呈现; 当我查看源代码时没有html.
我确定我错过了一些基本的东西,有人能说出来吗?!
c# ×4
.net ×3
javascript ×3
ajax ×1
bdd ×1
ember.js ×1
generics ×1
html5 ×1
jquery-ui ×1
knockout.js ×1
mspec ×1
mstest ×1
mvvm ×1
unit-testing ×1
wpf ×1