Wijmo 5 - Flexgrid& AngularJS - 在范围指令中使用相同的数据源

时间:2014-11-10 16:07:23

标签: angularjs wijmo wijgrid

从Wijimo 5和AngularJS一起尝试新的Flex网格。

我的应用程序通过HTTP调用加载数据,并且Grid绑定到控制器级别对象作为其数据源。如果我只是执行标准的Angular HTTP调用并设置对象,那么在我单击列标题之前,Grid不会显示数据。

这样的事情:

<body  ng-controller="LimoController as limo">
<wj-flex-grid items-source="limo.limoData" show-groups="false" >
        <wj-flex-grid-column
                header="Status"
                binding="booking.status"
                width="*"></wj-flex-grid-column>
        <wj-flex-grid-column
                header="Pickup Date"
                binding="from.date"
                format="d MMMM"
                width="*"></wj-flex-grid-column>
    </wj-flex-grid>

然后在app.js中我有一个工厂来获取数据但最终在我拥有的控制器内:

limo.limoData =results

我还有一个ng-repeat指令,它创建了一些额外的表单UI,它也绑定到相同的数据(这个数据是可编辑的),这可以作为其标准的AngularJS工作。

然后我尝试将结果对象更改为CollectionView - 就像这样:

limo.limoData =new wijmo.collections.CollectionView(results);

这修复了网格立即显示数据但打破了ng-repeat控制。

我当然可以有2个范围对象,1个作为CollectionView,另一个作为标准数据,但我需要来自ng-repeat的可编辑更新才能反映在网格中,因此理想情况下它们需要绑定到同一个对象。

1 个答案:

答案 0 :(得分:2)

您要做的是将ng-repeat绑定到CollectionView的“items”属性。这是一个这样做的例子。

http://jsfiddle.net/1r4ebc33/1/

您的代码可能如下所示:

<ul>
    <li ng-repeat="item in limo.limoData.items">
     {{booking.status}} 
    </li>
  </ul>