2015-07-22 111 views
0

我有observableArray它的元素是数组。 我需要通过foreach,但我需要每次只显示observableArray的最后一个元素,即最后一个数组。 例如: 我观察到的阵列是:Knockout-foreach嵌套数组 - 不工作

self.treeLists = [ 
     [{id:1, name:'tar'}, {id:9, name:'se'}, {id:5, name:'tzav'}], 
     [{id:4, name:'sus'}, {id:8, name:'par'}], 
     [{id:7, name:'tal'}, {id:6, name:'med'}] 
]; 

所以我需要只显示所述第三阵列 - [{ID:7,名称: 'TAL'},{ID:6,名称: '配有' }]

这是我的HTML,但它造成问题! 上面写着它像我试图过度的observalbeArray并显示元素...

<div data-bind="if: treeLists().length>1"> 
        <div data-bind="foreach: treeLists()[treeLists().length-1]"> 
         <div class="col-md-2"> 
          <div class="organizationTreeItem"> 
           <img class="floutR" data-bind="attr: {src: $parent.global.imagesManager.plusblue}, click:$parent.itemClickPathMode" /> 
           <span data-bind="text:$data.name"></span> 
          </div> 
         </div> 
        </div> 
       </div> 

错误消息是:

未处理的异常在1981线,在http://localhost/myProj/Scripts/knockout-2.3.0.debug.js 列17 0x800a1391 - JavaScript运行时错误:'OrgName'未定义

您可以看到我调试时的情况,请参见图片:

enter image description here

回答

1

$data包含最后一个数组的对象,例如:{id:7, name:'tal'}

在你结合$data.OrgName HTML,但ORGNAME不绑定对象中的一员,所以它确实是未定义,像例外提到的那样。你的意思是绑定到“名称”?

<span data-bind="text:name"></span> 

另外treeLists还不是一个可观察的数组。看看下面的fiddle

+0

是的,它只是输入错误。但问题是存在 – user2783091

+0

也许这是因为treeLists没有被声明为observableArray?看看下面的小提琴:https://jsfiddle.net/kv7s202z/ –