Как получить текущий объект в цикле for в JsRender

Я хочу, чтобы текущий объект, который установлен как значение, был установлен в флажке для цикла JsRender. Ниже мой код.

{{for data.UserConnection}}
  <li>
    <input name="checkboxlist" class="profilechkbox" type="checkbox" value={{:#view}} /><br />
    <a onclick="stateManager.renderSelectedProfileForInviteGroup({{:#index}})" title="{{:Fullname}}" class="active" href="#" >
      <img  src="{{:userDetails.ImagePath}}" width="40" height="40" /><br />
      {{:Fullname}}
    </a>
  </li>
{{/for}}

Я установил значение как {{:#view}}, чтобы получить текущий объект. Но я получаю [object object]. Пожалуйста, поправьте меня, если я делаю неправильно здесь.


person Community    schedule 20.06.2013    source источник


Ответы (3)


#view в JsRender — это текущий объект данных.

Написав {{:#view}}, вы пытаетесь отобразить объект, который будет отображаться в браузере как [object Object].

Попробуйте {{:#view.data.yourattribute}}.

person Anirudh    schedule 20.06.2013
comment
Привет, Анируд, я хочу полный объект, а не атрибуты. по приведенному выше коду я хочу, чтобы объект подключения пользователя был полностью. - person ; 20.06.2013
comment
Как вы хотите отобразить полный объект в качестве значения флажка? Вы можете преобразовать объект в строку или логическое значение или получить логическое или строковое свойство объекта. В противном случае результатом будет преобразование строки, например [object Object]. {{:myAttribute}} или {{:~myconverterhelper(#data)}} или {{myconverter:#data}} возможны. #data эквивалентно #view.data. - person BorisMoore; 20.06.2013

У меня было требование отображать динамически именованные свойства текущего объекта в цикле. Для этого вы можете создать функцию для установки текущего экземпляра в вашей модели представления (объекта) и получить значение свойства с динамическим именем текущего экземпляра, вызвав другую функцию в вашей модели. Пожалуйста, посмотрите мою скрипку JsRender Dynamicly Named Props. Источник вдохновения: скрипка Джона Папы.

<tbody>
    {{for markets}}  
    {{:~SetInstanceFunc()}}
    <tr>
        <td>{{:id}}</td> <td>{{:market}}</td>
        {{for #parent.parent.data.years}}      
        <td>{{:~GetYearPropFunc('min', #data)}} </td>
        <td>{{:~GetYearPropFunc('max', #data)}} </td>
        {{/for}}
    </tr>
    {{/for}}
</tbody>

Вот java-скрипт:

var vm = {
  years: years, 
  markets:markets,
  instance:{},
  setInstance: function(){
    instance = this.data;
  },
  getYearProp: function(text, year){
    if(!instance) return '';
    return instance[(text + year)] || '';
    }
};
$.views.helpers({
  GetYearPropFunc: vm.getYearProp,
  SetInstanceFunc: vm.setInstance
});
person Kishore    schedule 17.09.2016

Чтобы визуализировать текущий объект:

{{for #data }} 
    {{:attribute1}}
    {{:attribute2}}
    ...
{{/for}}
person oll    schedule 27.03.2015