2013-07-25 34 views
1

Im使用敲除,我想插入/顯示2 div之間的div。基本上即時創建一個員工詳細信息頁面。該員工將被列出,當用戶點擊我想他/她的細節到員工使用敲除在div之間插入div

<div>user 1</div> 
<div>user 2</div> 
<div>user 3</div> 

點擊

<div>user 1</div> 
<div>User Details etc</div> 
<div>user 2</div> 
<div>user 3</div> 

林下顯示存儲選擇的用戶可編輯屬性,它是員工當員工點擊並使用綁定時,我可以讓用戶在所有用戶之後出現,但我真的很想獲得相關員工的詳細信息。有任何想法嗎?

Heres a link to quick fiddle ive done

回答

5

KnockoutJS不操作DOM這種方式。你可以使用jQuery或原生js document.createElement('用戶詳細信息等),並將其追加到用戶div之間。在淘汰賽中最接近這種行爲的是IF綁定。最後解釋。它仍然需要在那裏定義,然後淘汰賽可以控制它。

對於淘汰賽的方式,你可以能見度開始:

<div>user 1</div> 
<div data-bind="visible: selectedUser() == user1">User 1 Details etc</div> 
<div>user 2</div> 
<div data-bind="visible: selectedUser() == user2">User 2 Details etc</div> 
<div>user 3</div> 
<div data-bind="visible: selectedUser() == user3">User 3 Details etc</div> 

或者更好,在循環:

<!-- ko foreach: users --> 
    <div data-bind="text: $data.userName"></div> 
    <div data-bind="visible: $parent.selectedUser() == $data.userName, text: $data.userDetails"></div> 
<!-- /ko --> 

如果你想保持這些div了DOM的,改變visibilityif。從淘汰賽網站:

如果對可見的綁定起着類似的作用。差異是 ,在可見的情況下,包含的標記始終保留在DOM中,並且 始終應用其數據綁定屬性 - 可見綁定僅使用CSS切換容器元素的可見性。但是,if綁定在物理上添加或刪除DOM中的包含標記, 並且僅在表達式爲true時纔將綁定應用於後代。

你可以閱讀更多的文檔:http://knockoutjs.com/documentation/if-binding.html

編輯:和你修改的jsfiddle:http://jsfiddle.net/XwcK9/1/