3

次のドロップダウンがあります。

<div>  
    Dummy
    <select data-bind="options: categories, optionsText: 'description', value: 2"></select>
</div>

以下のJavaScriptで:

function ViewModel()
{

    this.categories = ko.observableArray([
            new Category(1, "Non classé"),
            new Category(2, "Non nucléaire"),
            new Category(3, "Classe II irradié"),
            new Category(4, "Classe III")
    ]);

    // Constructor for an object with two properties
    function Category(id, description) {
        this.id = id;
        this.description = description;
    };
}

ko.applyBindings(new ViewModel());

ドロップダウンでIDが2の要素を事前に選択したいと思います。

何か案が?

ありがとう。

jsFiddle: http://jsfiddle.net/RfWVP/276/

4

1 に答える 1

7

これを行うには2つの方法が考えられます。selectedCategoryいずれにせよ、現在選択されているオプションを追跡するために監視可能なプロパティを追加する必要があります。

  1. optionsValueバインディングを使用して、各'id'のとして使用するプロパティとして指定します。valueoption

    <select data-bind="options: categories, 
                       optionsText: 'description', 
                       value: selectedCategory, 
                       optionsValue: 'id'">                 
    </select>
    

    次にselectedCategory、「2」に等しく設定します。

    this.selectedCategory = ko.observable(2);
    

    例: http://jsfiddle.net/RfWVP/281/

  2. 監視可能なカテゴリの配列を作成する前に、id "2" のカテゴリを作成し、そのカテゴリとselectedCategory等しい値を設定します。

    var selected = new Category(2, "Non nucléaire");
    
    this.categories = ko.observableArray([
        new Category(1, "Non classé"),
        selected,
        new Category(3, "Classe II irradié"),
        new Category(4, "Classe III")
    ]);
    
    this.selectedCategory = ko.observable(selected);
    

    例: http://jsfiddle.net/RfWVP/280/

どちらを使用するかは、選択したカテゴリについて必要な情報によって異なります。

于 2013-03-23T16:42:31.597 に答える