2012-03-31 54 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

相關問題