1

画像

メニューは私が欲しいものです。マウスを左に置くと、右が変わるはずですが、変わりません。

これが私の簡略化されたビューモデルです。

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未満のため、画像を投稿できません。

助けてくれてありがとう!

4

1 に答える 1

1

コードにいくつかの構文エラーがありましたが、これは投稿を簡単にした結果だと思います。

動作するjsFiddleをここに投稿しました:http://jsfiddle.net/Gy6Gv/2/

メニューを監視可能な配列に変更したのは、ノックアウトがヘルパーメソッド.indexOfを提供して、マウスオーバーからメニューのインデックスを簡単に取得できるようにするためです。それ以外は計算に問題はありませんでした。実際のコードには他の構文エラーがあると思います。

于 2012-06-26T13:50:59.887 に答える