2012-06-26 14 views
1

image爲什麼不計算不跟蹤這個簡單的淘汰賽應用程序的變化?

菜單是我想要的,當鼠標移到左側時,右側應該改變,但不改變。

這裏是我的簡單的視圖模型:

var currentSelectIndex = 0; 

var AppModel = { 
    CurrentIndex: ko.observable(currentSelectedIndex), 
    OnMouseOver: function (data, event) { 
     // change currentIndex or currentSelectedIndex here 
     // CurrentSubCategory didn't updated 
    }, 
    CurrentSubCategory: ko.computed({ 
     read: function() { 
      return AppModel.Menu[AppModel.CurrentIndex()].subcategory; 
     }, 
     deferEvaluation: true 
    }), 
    Menu: [ 
    { 
     subcategory: [ 
      { name: '1', id: 50000436 }, 
      { name: '2', id: 50010402 }, 
      { name: '3', id: 50010159 } 
     ], 
    } 
}; 

而且我的html:

<div class="categories" id="categories"> 
    <div class="first-category" id="first-category"> 
     <ul data-bind="foreach:Menu"> 
      <li data-bind="text:name,attr:{id:id,class:className},event{ mouseover: $root.myfunction}"></li> 
     </ul> 
    </div> 
    <div class="sub-category" id="sub-category"> 
     <ul data-bind="foreach:CurrentSubCategory()"> 
      <li><a data-bind="text:name,attr:{href:getListUrl(id)}"></a></li> 
     </ul> 
     <div class="clear"> 
     </div> 
    </div> 
    <div class="clear"> 
    </div> 
</div> 

對不起,不能因低於10聲譽發表圖片。

感謝您的幫助!

+3

好..你需要發佈源代碼..當你指的是源代碼時不是圖片..!所以第二個應該是文本.. – Lipis

+0

這將是一個很大的幫助,如果你創建一個jsfiddle來說明問題。 – aaberg

+1

不確定您顯示的代碼是否完整!但從它的外觀來看,「Menu」對象被定義爲一個數組......但是沒有關閉「]」。 –

回答

1

你的代碼中有幾處語法錯誤,我想是因爲你使它更容易發佈。

我已經張貼在這裏工作的jsfiddle:http://jsfiddle.net/Gy6Gv/2/

我改變的菜單是隻是因爲淘汰賽提供輔助方法.indexOf,使其更容易擺脫鼠標懸停在菜單的指標可觀察到的陣列。除此之外,計算機沒有問題。我想你的實際代碼中有一些其他的語法錯誤。

+0

謝謝你的示例,是的,改變菜單是一個可觀察數組和indexof是非常好的。 – dfang

+0

鉻開發人員控制檯沒有錯誤,我剛剛更改currentIndex,並且CurrentSubCategory未更新。 – dfang