1

我想要在 JsRender 的 for 循环中将当前对象设置为复选框的值。下面是我的代码。

{{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]。如果我在这里做错了,请纠正我。

4

3 回答 3

3

#view在 JsRender 中是当前的数据对象。

通过编写{{:#view}},您正在尝试显示对象,该对象将[object Object]在浏览器中显示。

试试{{:#view.data.yourattribute}}

于 2013-06-20T08:39:36.240 回答
1

我需要在循环中呈现当前对象的动态命名属性。为此,您可以创建一个函数来在视图模型(对象)中设置当前实例,并通过调用模型中的另一个函数来获取当前实例的动态命名属性的值。请看我的小提琴JsRender Dynamically 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
});
于 2016-09-17T14:20:21.370 回答
0

渲染当前对象:

{{for #data }} 
    {{:attribute1}}
    {{:attribute2}}
    ...
{{/for}}
于 2015-03-27T09:29:07.387 回答