0


実際、私のコードには 2 つの問題があります。ここに私のjsFiddle Not Working Demoへのリンクがあります。
問題 1:リスト間で項目をドラッグ アンド ドロップできません。
問題 2:ドラッグ アンド ドロップが機能した後、特定の項目を配列から変更するにはどうすればよいですか?

ここに私の観測可能な配列があります:

self.customExportFileArray = ko.observableArray([
      {
        "IncludeInExportConversionTypesSelectList" :
          [
            {
              "ConversionGroupID" : "1",
              "Title" : "Quote Start - Auto"
            },
            {
              "ConversionGroupID" : "2",
              "Title" : "Quote Finish - Auto"
            },
            {
              "ConversionGroupID" : "3",
              "Title" : "Sales Data"
            }
          ],
        "ChooseFromConversionTypesSelectList" : [],
        "FileName" : "Template1"
      },
      {
        "IncludeInExportConversionTypesSelectList":
          [
            {
              "ConversionGroupID" : "1",
              "Title" : "Quote Start - Auto"
            },
            {
              "ConversionGroupID" : "2",
              "Title" : "Sales Data"
            }
          ],
        "ChooseFromConversionTypesSelectList":
          [
            {
              "Title" : "Quote Finish - Auto"
            }
          ],
        "FileName" : "Template2"
      }
    ]);


したがって、たとえば、ドロップダウンから「Template1」を選択すると、selectedTemplateプロパティは配列から 2 番目の項目を取得し、項目を左から右に、またはその逆IncludeInExportConversionTypesSelectList(リストの右側) およびChooseFromConversionTypesSelectList(リストの左側) に移動した後、配列が必要になります。更新され、Grab all data from specific templateボタンをクリックすると、更新された特定の配列が返されます(事前に選択されたドロップダウンコントロールに従って)。

誰かが私が間違っていることを知っていますか? ドロップダウンを追加する前に作業コードがあったためです。

どんな助けでも大歓迎です。
前もって感謝します。

4

1 に答える 1

1

sortable プラグインは、アイテムをドラッグしている配列が observableArrays であることを想定しています。あなたの場合、配列全体のみが観察可能です。

個々の配列が監視可能であることを確認する必要があります。ここにサンプルがあります:http://jsfiddle.net/rniemeyer/bSuJx/

    self.customExportFileArray = ko.observableArray([
      {
        "IncludeInExportConversionTypesSelectList" : ko.observableArray(
          [
            {
              "ConversionGroupID" : "1",
              "Title" : "Quote Start - Auto"
            },
            {
              "ConversionGroupID" : "2",
              "Title" : "Quote Finish - Auto"
            },
            {
              "ConversionGroupID" : "3",
              "Title" : "Sales Data"
            }
          ]),
        "ChooseFromConversionTypesSelectList" : ko.observableArray([]),
        "FileName" : "Template1"
      },
      {
        "IncludeInExportConversionTypesSelectList": ko.observableArray(
          [
            {
              "ConversionGroupID" : "1",
              "Title" : "Quote Start - Auto"
            },
            {
              "ConversionGroupID" : "2",
              "Title" : "Sales Data"
            }
          ]),
        "ChooseFromConversionTypesSelectList": ko.observableArray(
          [
            {
              "Title" : "Quote Finish - Auto"
            }
          ]),
        "FileName" : "Template2"
      }
    ]);

これがサーバーからのデータを表している場合は、バインドを適用する前に処理して observableArrays を作成する必要があります。

于 2012-12-18T15:38:59.633 に答える