0

更新されたコード:

http://jsfiddle.net/S96pA/1/

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js" type="text/javascript"></script>
<script src="http://github.com/downloads/SteveSanderson/knockout/knockout-2.2.0.js" type="text/javascript"></script>

</head>

<body>

<form id="new-pub">

    <input data-bind="value: Title" /><br/>

    <select size="10" multiple="multiple"
            data-bind="selectedOptions: Attachment, options: AttachmentSelect"></select>


</form>


<script type="text/javascript">

var AttachmentSelect=["C2012_info_mail.pdf", "C2012_programme.pdf"];

 var viewModel =
 {
    Title : ko.observable('Hello world'),
    Attachment: ko.observableArray([ "C2012_info_mail.pdf" ,  "C2012_programme.pdf" ])
};

 ko.applyBindings(viewModel, document.getElementById("new-pub"));

</script>

</body>
</html>
​

アイテムが強調表示 (選択) されていると予想されselectedますが、何も起こりません。なんで?

4

1 に答える 1

1

選択にバインディングを追加する必要がvalueあります。

<select data-bind="options: myList, value: selected" multiple="multiple" size="5">

また、viewModel は関数であるため、そのインスタンスを作成する必要があります。

ko.applyBindings(new viewModel());

ここにフィドルが働いています:http://jsfiddle.net/wM3EX/4/

編集

optionsおよび入札の順序を変更しselectedOptionsます。オプションは常に最初にする必要があります。

<select size="10" multiple="true"
        data-bind="options: AttachmentSelect, selectedOptions: Attachment">
</select>

作業フィドル: http://jsfiddle.net/S96pA/2/

于 2012-12-11T11:17:54.010 に答える