我已经开始使用Wijmo工具包了,并且在他们的文档页面中遇到了很多与此相似的示例选择器:
$(":input[type='radio']").wijradio();
Run Code Online (Sandbox Code Playgroud)
我这样写过我的:
$('input[type=radio]').wijradio();
Run Code Online (Sandbox Code Playgroud)
这些是做同样的还是我缺少的东西?
请注意,上面有两个不同之处:第一个选择器以冒号为前缀,并为输入类型提供引号.
我有一个使用jquery-mobile(jqm)和knockout构建的移动单页Web应用程序.应用程序本身有多个页面,但它们都包含在一个HTML文档中.
问题:在将"创建页面视图模型"从同步更改为异步行为后,我遇到了jquery-mobile在数据准备好之前触发其事件的问题.
背景:直到最近,我一直在处理样本数据,基本上是一个巨大的JSON blob,一切都很顺利.使用来自各种来源的视图模型的新异步组合,数据不会立即就绪,我的"buildViewModel"方法采用连续回调而不是仅仅同步返回数据.
我正在订阅pagebeforecreate和pagebeforechange事件,并在此处触发代码以填充viewmodel.问题是从事件处理程序返回后,jqm在数据可用之前触发剩余的事件链.这导致页面转换到未准备的页面,这是不希望的.
我试图event.preventDefault
在所有事件之前调用并在页面准备好a)增强后手动调用$ .mobile.changePage并且b)页面转换发生,但没有任何运气.
我已经扫描了jquery-mobile源,但是看不到任何看起来像是允许我延迟pagebeforeshow
事件的东西,这本质上是我需要的才能正确渲染页面.
在jquery-mobile尝试增强页面之前和执行转换到页面之前,我如何确保1)数据可用并且2)已应用knockout来执行初始DOM操作?
我还考虑使用同步ajax来获取资源,但这(我认为)不适用于从设备加载的资源(使用PhoneGap/Cordova),并且还有其他我想避免的负面后果.
FWIW,我想通过在任何地方连接点击处理程序来避免手动处理所有导航事件,但如果需要,我会对所有解决方案持开放态度.
如果这是重复的,请道歉; 我搜索并阅读了大量问题,但没有找到完全相同的答案或问题.听起来不可思议的是我会成为第一个遇到这个问题的人,因为我认为这是一个常见的场景.
更新:澄清问题场景描述.
我已经使用C#多年了,我主要习惯于单文件的每种类型的做事方式.我也喜欢将文件放入子文件夹(对应于C#中的命名空间).
但现在我正在使用TypeScript构建一个移动Web应用程序,并发现自己以相同的方式构建我的代码.但是,这不能很好地工作:
第一点应该是通过编写一个小工具从捆绑输出中去掉不必要的模块包装器来解决的.而且我认为我需要避免使用子模块,只需将所有内容都粘贴到一个模块中,无论文件系统位置如何.
是否有更好的方法来构建TypeScript代码而不是我目前正在做的/计划或者像上面这样的推荐做法?对于喜欢单一责任原则的人来说,有哪些替代方案值得考虑?
PS:我希望这属于SO的指导方针,尽管可能有点主观和开放性.
我需要一个解决方案,让我完成以下任务:
我目前正在考虑为什么ASP.NET MVC中没有CssResult,以及是否存在缺席的原因.创建自定义ActionResult不是最好的方法吗?有没有其他方式我忽略了做我需要的东西?
在我开始这项任务之前可能有任何其他建议或提示也将不胜感激:)
受到希望能够在EF查询中使用枚举的启发,我正在考虑将ExpressionVisitor添加到我的存储库中,这些存储库将采用传入的条件/规范标准并重写它们以使用相应的持久性int属性.
我一直在我的(代码优先)实体中使用以下值后缀模式:
public class User : IEntity
{
public long ID { get; set; }
internal int MemberStatusValue { get; set; }
public MemberStatus MemberStatus
{
get { return (MemberStatus) MemberStatusValue; }
set { MemberStatusValue = (int) value; }
}
}
Run Code Online (Sandbox Code Playgroud)
并使用以下内容将其映射到数据库:
internal class UserMapping : AbstractMappingProvider<User>
{
public override void DefineModel( DbModelBuilder modelBuilder )
{
// adds ToTable and other general mappings
base.DefineModel( modelBuilder );
Map.Property( e => e.MemberStatusValue ).HasColumnName( "MemberStatus" );
}
}
Run Code Online (Sandbox Code Playgroud)
在我的存储库中,我有以下方法:
public IQueryable<T> Query( Expression<Func<T, …
Run Code Online (Sandbox Code Playgroud) c# reflection entity-framework expression-trees entity-framework-4.1
我需要一些帮助来确定为我的最新项目使用CMS或门户解决方案是否是一个好主意,这是(当前)一个必须为多个客户服务的ASP.NET MVC应用程序(作为公司或其他实体)来自单个安装(即SaaS解决方案)的用户列表.
除了核心功能,包括文档管理/发布,我还需要提供基本的社交功能(如博客,论坛,图库,民意调查等).但是,内容仅对其所属的客户可见是必要的,我对一堆CMS和门户解决方案的评估几乎没有说明它们是否支持这一点.他们非常关注单用户安装,有关如何与现有MVC解决方案集成的文档相当薄.
基本上我正在寻找一些指导,以帮助我放弃死端选项(产品不符合要求,施加太多限制,不成熟等),并在项目过于先进之前找到未开发的选项.
我对架构的要求包括:
我花了相当多的时间来评估产品和组件,我将在此简要分享一下:
鉴于上面的列表,我倾向于AtomSite,N2CMS,Orchard或BlogEngine.NET.如果我选择后者,我将使用jitbit AspNetForum,这非常适合我的需求.
我可能更喜欢使用自定义ASP.NET MVC解决方案和单个组件,因为这可能会给我最大程度的控制,但另一方面,它会使网站主题和集成更加困难.您尝试了哪些组合,什么运作良好,哪些没有?我遗漏了什么重要的评价?还有其他相关建议吗?
如果答案不仅仅是对您最喜欢的产品或做事方式的认可,我会很感激,但有些东西可以帮助我根据上述要求选择或消除候选解决方案.
我目前正在使用使用HttpClient类发出HTTP请求的代码.虽然您可以为请求指定超时,但该值适用于整个请求(包括解析主机名,建立连接,发送请求和接收响应).
如果他们无法解析名称或建立连接,我需要一种方法使请求快速失败,但我有时也需要接收大量数据,因此不能只是减少超时.
有没有办法使用内置(BCL)类或备用HTTP客户端堆栈来实现此目的?
我简要地看了一下RestSharp和ServiceStack,但似乎都没有为连接部分提供超时(但如果我错了,请纠正我).
我的Visual Studio(2010 SP1)有严重的内存泄漏,它似乎是由一个或多个已安装的扩展引起的.
我试图通过打开和关闭扩展和附加组件来缩小范围,但是需要花费一些时间来构建重大泄漏,结果并不完全是结论性的.在devenv.exe进程使用2GB内存并开始丢弃之前,它很少需要几个小时,这对于使用起来有点麻烦.
有没有办法让VS在为扩展分配的内存上发出信息?
托管扩展是否在自己的AppDomain中运行?也许这会让我打开一些可以帮助查明问题的性能计数器.
还有什么我可以解决这个问题,除了逐个禁用东西,直到问题消失?
我目前正在开发一个ASP.NET MVC解决方案,最近又推出了Knockout(MVVM JS库)和Wijmo(一组jQuery UI小部件).
随着Knockout的引入,我还需要在客户端有模型,所以为了这个目的,我正在序列化C#ViewModel并使用它将它附加到视图data-model="@Model.ToJson()"
.这允许我从JS检索模型并对一切应用一些客户端的爱.
但是,knockout需要一切都是可观察的,所以我需要声明一个单独的客户端ViewModel并映射数据模型对象的所有内容.这感觉非常像重复的努力,我想以某种方式避免它.
我希望有人有一个共享的工具或技术,这将允许我直接从服务器渲染淘汰ViewModel.可能的解决方案包括:
我希望解决方案是通用的和自动的,因为我目前用手工输入可观察的客户端视图模型的方法实在是太没用了.
你是怎么解决这个问题的?
根据这个问题,我应该能够写出这样的东西:
@Html.ActionLink( "Delete", "Delete", "Message", new { data_id=id, @class="delete" } )
Run Code Online (Sandbox Code Playgroud)
或者作为一个快乐的T4MVC用户可以做到:
@Html.ActionLink( "Delete", MVC.Message.Actions.Delete(), new { data_id=id, @class="delete" } )
Run Code Online (Sandbox Code Playgroud)
并在渲染期间替换"data_id"中的下划线:
<a href="/message/delete" class="delete" data-id="42">Delete</a>
Run Code Online (Sandbox Code Playgroud)
但是,这似乎不适用于MVC 4测试版.其他人看到这个问题?
这是故意改变,如果是,我该怎么办?
更新 - 如何修复(手动)
我已将以下更改应用于T4MVC.tt文件,该文件修复了生成的代码中的问题:
public static MvcHtmlString ActionLink(this HtmlHelper htmlHelper, string linkText, ActionResult result, object htmlAttributes, string protocol = null, string hostName = null, string fragment = null) {
//was: return ActionLink(htmlHelper, linkText, result, new RouteValueDictionary(htmlAttributes), protocol, hostName, fragment);
return htmlHelper.RouteLink(linkText, null, protocol, hostName, fragment, result.GetRouteValueDictionary(), HtmlHelper.AnonymousObjectToHtmlAttributes(htmlAttributes));
}
Run Code Online (Sandbox Code Playgroud)
更新2 …
c# ×6
asp.net-mvc ×4
javascript ×2
knockout.js ×2
.net ×1
components ×1
css ×1
html5 ×1
jquery ×1
memory-leaks ×1
mvvm ×1
portal ×1
reflection ×1
typescript ×1