使用 Ember 存储和模型作为 JqGrid 的源数据

Use Ember store and model as source data for JqGrid

我想在 JqGrid 中使用我的 Ember 存储中已经填充的数据。 关于如何以更好的方式实现这一目标的任何提示?

我发现商店中的模型对象与适合 JqGrid 的 javascript 对象数组不兼容,因此我必须创建适当的数组。

这是我将模型传递给模板中的组件的方式:

{{myComponent data=model}}

下面是我准备 jqGrid 数据的方式:

...
export default Ember.Component.extend({
    didInsertElement: function(){
        var myEmberData = this.get('data'); 
        var myJqGridData = myEmberData.map(item => {
            return $.extend({id:item.id},item._internalModel._data);
        }
        ...
        //use myEmberData as local data for JqGrid
        this.$("#gridId").jqGrid({
            datatype: "local", 
            data: myJqGridData,
        ...
    }
});

与其访问 2 个私有属性,不如使用 .getProperties() 方法并明确指定您需要的数据会更好:

const myEmberData  = this.get('data'); 
const myJqGridData = myEmberData.map(
    item => item.getProperties('id', 'firstProperty', 'secondProperty') // ... etc.
);