在$(document).ready上添加KO“data-bind”属性

时间:2012-03-31 23:17:47

标签: javascript jquery asp.net-mvc-3 knockout.js

前言

我很少成为JS开发人员,这是我第一次尝试使用Knockout.js。要遵循的问题可能说明了两点。

Backgound

我有一个相当复杂的MVC3应用程序,我正在尝试使用KO(v2.0.0.0)。我的MVC应用程序旨在通用控制视图中显示的字段(以及 如何将它们添加到视图中)。它利用部分视图根据用户的权限决定在视图中绘制什么(如果用户在组A中,则显示控件A,如果组B中的用户则显示控件B 或可能如果用户在组A中,则根本不包括控件。此外,我的模型非常持平,所以我不确定将ViewModel应用于视图的特定部分的内置功能会有所帮助。

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

失败的概念验证

我第一次尝试证明这种方法似乎并没有起作用,而且“不起作用”我的意思是它根本不会绑定值(如this jsfiddle中所示。 )。我已经尝试使用applyBindings内部的ready内部而不是,但它似乎没有任何区别。

问题

我做错了什么?或者这不是可以与KO一起使用的东西(虽然我已经看到至少一个在线做同样的事情并且据说有效)?

就像我在前言中所说的那样,我只是假装成为一名JS开发人员(虽然我过去常常让它开始工作)所以我不知道从哪里开始试图找出什么我做错了。希望这不是一个真正的noob问题。

1 个答案:

答案 0 :(得分:3)

您确定引用了Knockout库吗?通过简单地引用Knockout,我得到了你的小提琴:

fiddle

在您自己的页面中,您可以使用脚本标记执行此操作:

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