2015-02-12 6 views
0

У меня есть массив источника данных, и я хотел бы привязать атрибутом данных связыванияКак использовать массив источников данных?

<div data-role="listview" 
     data-template="template3" 
     data-bind="source: products"></div> 

template3:

<script type="text/x-kendo-template" id="template3"> 
     # for (var y = 0; y < data.length; y++) { # 
     <div data-role="listview" 
      data-template="template" 
      data-bind="source: data[y]"></div> 
      # } # 

    </script> 

ViewModel:

var viewModel = kendo.observable({ 
      products: [new kendo.data.DataSource({ 
       schema: { 
        model: { 
         id: "Id" 
        } 
       }, 
       transport: { 
        read: { 
         url: "@Url.Action("Products", "Home")", 
         dataType: "json" 
        }, 
        parameterMap: function(options, operation) { 
         if (operation !== "read" && options.models) { 
          return { models: kendo.stringify(options.models) }; 
         } 
        } 
       } 
      })] 

И я получаю ошибку:

Uncaught ReferenceError: y is not defined

ответ

0

Почему вокруг вашего DataSource существует массив?

В любом случае, конкретная ошибка, которую вы получаете, связана с тем, что y не определен в контексте, к которому вы пытаетесь получить к нему доступ.

Вы должны изменить шаблон:

# for (var y = 0; y < data.length; y++) { # 
    <div data-role="listview" 
     data-template="template" 
     data-bind="source: data.at(#=y#)"></div> 
    # } # 
+0

В disapear ошибки, но источник данных не работают. У меня будет несколько источников данных. data [0] isdefiend – Mediator

+0

да, но не понимаю, что это такое. "function (e) {var n = this; return e === t? n._data: (n._data = this._observe (e), n._pristineData = e.slice (0), n._ranges = [ ], n._addRange (n._data), n._total = n._data.length, n._pristineTotal = n._total, n._process (n._data), t)} " – Mediator

+0

Я отредактировал свой ответ –