2012-03-31 61 views
1

前言

我很少过一个JS开发人员,这是我在做与Knockout.js事情的第一次尝试。要遵循的问题可能说明了两点。

Backgound

我有我试图让与KO(V2.0.0.0)工作的一个相当复杂的应用MVC3。我的MVC应用程序旨在统一控制哪些字段出现在视图中(并且如何将添加到视图中)。它使用部分视图根据用户的权限决定在视图中绘制什么(如果用户在组A中,则显示控件A,如果组B中的用户则显示控件B 或可能的,如果用户是在A组中根本不包括控制)。此外,我的模型是非常平坦,所以我不确定将ViewModel应用到视图的特定部分的内置功能将有所帮助。

我对这个问题的解决方案是在我的控制器中提供一个动作,以JSON格式响应一个对象,该对象包含JQuery选择器和要分配给“data-bind”属性的内容,并将ViewModel绑定到使用提供的值查看$(document).ready事件。

证明失败的概念

我在证明这个作品实际上并不似乎工作,并以“不工作”我的意思是,它只是不绑定该值首次尝试完全可以(在this jsfiddle中可以看到)。我试过ready事件中的applyBindings而不是,但它似乎没有任何区别。

问题

我在做什么错?或者这是不是可以与KO一起工作的东西(尽管我已经看到至少有一个例子在线做同样的事情,它据说工程)?

就像我在序言中所说的,我只是假装成为一个JS开发人员(虽然我通常已经在过去使用它),所以我不知道该从哪里开始尝试弄清楚我做错了什么。希望这不是一个真正的noob问题。

回答

3

您确定您已经引用了Knockout库吗?我收到了你拨弄工作通过简单地参照淘汰赛:

fiddle

在自己的网页,你可以使用脚本标签可以这样做:

<script src="pathToKnockoutJsFileOnYourServer" type="text/javascript"></script> 
+0

我可以发誓我添加了引用。我不确定究竟发生了什么,但你是完全正确的。谢谢你的帮助。 – 2012-03-31 23:29:51

+0

如果您发现它在您的真实项目中不起作用,那么您还应该在'$(“#lastName”)。attr(“data-bind”,“value:lastName”)后面加上'applybinding'语句; – 2012-03-31 23:35:40

+0

@green - 感谢您的提示。我一定会那样做。你是指“准备好”事件的内部,对吧? – 2012-04-01 00:08:58

相关问题