2017-01-24 3 views
1

ビューモデル内から、observableArrayにアイテムを動的にプッシュしようとしています。 ajaxはデータを正しく返します。ノックアウトアイテムが存在しないobservableArrayにプッシュ

HTML

<li class="liTagulTagsChild" data-bind="click:$root.GetEmissions">/li> 

のjavascript:

 var TagDetail = function (di_titre, di_diffusion) { 
      this.di_titre = ko.observable(di_titre); 
      this.di_diffusion = ko.observable(di_diffusion);    
     } 

     var testA = []; 
     this.test = ko.observableArray(testA); 

     this.GetEmissions = function (c, event) { 
      var element = event.target; 
      var tag_id = element.getAttribute('tag_id'); 

      $.AjaxAntiforgery({ 
       url: 'Emission/GetDetailsByTagID/', 
       data: { 
        tag_id: tag_id 
       }, 
       success: function (result) {    
         for (var i = 0; i < result.length; i++) { 
         var tD = new TagDetail(result[i].DI_TITRE, result[i].DI_DIFFUSION); 
         this.test.push(tD); 
        } 

       } 
      }); 
     } 

問題:私はthis.testであるためthis.testするアイテムをプッシュすることはできませんGetEmissions関数内から null(定義されていない)。言い換えれば

this.test.push(tD); 

失敗しました。 (ヌル参照または定義されていない) 解決法誰ですか?

答えて

関連する問題