2

W8のテンプレートで大きな問題が発生しています。

    <div class="itemtemplate" data-win-control="WinJS.Binding.Template">
    <div class="item">
        <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
        <div class="item-overlay">
            <h4 class="item-title" data-win-bind="textContent: title" style="margin-left: 0px; margin-right: 291.08px;"></h4>
            <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: subtitle"></h6>
        </div>
    </div>
</div>

ただし、外観が異なる必要があるアイテムがいくつかあり、IDを追加する必要があります。たとえば、このコードはdata.jsにあります。

        var sampleItems = [
        { group: sampleGroups[0], importancia: "top", title: "Item Title: 1", subtitle: "Item Subtitle: 1", description: itemDescription, content: itemContent, backgroundImage: lightGray },
        { group: sampleGroups[0], title: "Item Title: 2", subtitle: "Item Subtitle: 2", description: itemDescription, content: itemContent, backgroundImage: darkGray },
        { group: sampleGroups[0], title: "Item Title: 3", subtitle: "Item Subtitle: 3", description: itemDescription, content: itemContent, backgroundImage: mediumGray },
        { group: sampleGroups[0], title: "Item Title: 4", subtitle: "Item Subtitle: 4", description: itemDescription, content: itemContent, backgroundImage: darkGray },
        { group: sampleGroups[0], title: "Item Title: 5", subtitle: "Item Subtitle: 5", description: itemDescription, content: itemContent, backgroundImage: mediumGray }];

IDを追加するにはどうすればよいですか?オプションimportanciaは、IDを持つものを決定するためです。

4

1 に答える 1

2

アイテムの属性にdynamic template binding値を割り当てるために使用します。ただし、@DominicHopton が指摘した「潜在的な重複」では、アイテムに を割り当てたくない場合があることに注意してください。idListViewid

function listViewItemTemplate(item) {
    // data has has information about each item
    var data = item.data._value;

    var itemElement = document.createElement('div');
    if (data.shouldHaveId) { // check whatever condition that you need
        itemElement.id = data.id; // assign an id to your element
    }

    ...

    return {element: itemElement}
}

...

// Then you can assign the template to your listview
youListViewControl.itemTemplate = listViewItemTemplate;
于 2012-12-28T17:40:02.653 に答える