前言
我很少过一个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问题。
我可以发誓我添加了引用。我不确定究竟发生了什么,但你是完全正确的。谢谢你的帮助。 – 2012-03-31 23:29:51
如果您发现它在您的真实项目中不起作用,那么您还应该在'$(“#lastName”)。attr(“data-bind”,“value:lastName”)后面加上'applybinding'语句; – 2012-03-31 23:35:40
@green - 感谢您的提示。我一定会那样做。你是指“准备好”事件的内部,对吧? – 2012-04-01 00:08:58