2017-03-17 9 views
0

私は配列がajaxリクエストから戻ってくる。この配列をノックアウトのobservableArrayにバインドします。私は配列prefixeDataをどのように反復処理し、各要素のプロパティを観測可能にするかを知りたいと思います。これは可能ですか?アレイ内のすべてのプロパティを観測可能にする

var viewModel = { 
      name: "Editor",     
      prefixeData: ko.observableArray([]),     
      getPrefixes: function (prefix) {      

       var params = { 
        "prefix": prefix 
       }; 

       $.ajax({ 

        type: "POST", 
        url: "XXXX.aspx/GetPrefixes", 
        data: JSON.stringify(params), 
        contentType: "application/json; charset=utf-8", 
        dataType: "json", 
        async: false, 
        success: function (data) { 
         var trans = data.d; 
         if (trans.Successful) { 

          viewModel.prefixeData(trans.ResultObject); 
          // this doesnt work 
          viewModel.prefixeData().forEach(function(data) { 
           data.LevelName=ko.observable(data.LevelName); 

          }); 
         } else { 
          //todo 
         } 

        }, 
        error: function (xhr, textStatus, err) { 

         alert("Status: " + textStatus); alert("Error: " + err); 

        } 

       }); 
      } 
     }; 
+2

:http://knockoutjs.com/documentation/plugins-mapping.html –

答えて

1

uはknockout.mapping

をknockout.mappingインポートし、同じようにコードを編集して必要があります余分なプラグインで

success: function (data) { 
         var trans = data.d; 
         if (trans.Successful) { 
         var observableArray = ko.mapping.fromJS(trans.ResultObject); 
         viewModel.prefixeData(observableArray()); 
         //viewModel.prefixeData now is observableArray, you can call foreach : viewModel.prefixeData at html 
         } else { 
          //todo 
         } 

        }, 
+1

ありがとう@PhillyNJ:それはより明確です! –

関連する問題