2015-03-18 9 views
0

У меня есть сайт с JsRender и JSON-файлом.
код Мои JSRender:JsRender - динамический массив, вспомогательная функция

{{for ~getModel(cards)}} 
{{:id}} 
{{/for}} 

Мой JSON файл:

{ 
    "alpha": { 
     "cards": [{ 
      "id": "alpha-01" 
     }, { 
      "id": "alpha-02" 
     }, { 
      "id": "alpha-03" 
     }] 
    }, 
    "beta": { 
     "cards": [{ 
      "id": "beta-01" 
     }, { 
      "id": "beta-02" 
     }] 
    } 
} 

В {{for ~getModel(cards)}} является cards, суффикс. Помощник моего JsRender объединяет префикс и суффикс, а результат - строку. Эта строка должна быть моим массивом для цикла for. Суффикс представляет собой динамическую часть, параметр из URL (?model=alpha)

цикл должен запустить через массив alpha.cards ->{{for ~getModel(alpha.cards)}}

Но когда я concate динамическую часть и суффикс, возвращаемое значение строка, а цикл for не работает. Кажется, значение (return) для помощника должно быть массивом.

Правильно это или есть другое решение проблемы?

ответ

0

Да - вам нужно вернуть массив. JsRender отображает объекты javascript и массивы (обычно это иерархия объектов и массивов). Если ваша строка является строкой JSON, вам нужно сначала преобразовать/eval, чтобы создать соответствующий объект или массив ...

+0

Спасибо за ваш ответ. Мое решение было: '$ .views.helpers ({getModel: function() {return this.data [byModel];}});' и работает! 'byModel' содержит строку' alpha' как строку. – redpop

 Смежные вопросы

  • Нет связанных вопросов^_^