0

这是交易:我正在尝试从 php 脚本中获取数据,创建 javascript 对象并将它们分配给 ember 数据存储,然后调用 ember find() 函数来显示数据。

数据存储:

    App.Images = DS.Model.extend({
        name: DS.attr('string'),
        imageThumb: DS.attr('string'),
        imageFull: DS.attr('string'),
    });

    //Have to do this, otherwise it doesn't work
    App.Images.FIXTURES = [];

这是加载数据的主要功能......首先,我什至不确定这是否是正确的方法。但是,它确实有效,但是……我严重怀疑它是否应该是那样的。在调用 $.each 函数之前注意注释!

    App.MainRoute = Ember.Route.extend({    
        model: function(){

            $.ajax({
                type: "POST",
                url: "dataDao.php?f=getAll",
                datatype: "json",
                success: function(data){ 

                    //I WANT TO CALL THE 'CLEAR DATA STORE' HERE!

                    $.each(JSON.parse(data), function(index, value) {
                        App.Images.createRecord( 
                        {
                                id: value['id'],
                                name: value['name'],
                                imageThumb: value['imageThumb'],
                                imageFull: value['imageFull'],
                        }); 
                    });
                },
                error: function(err){
                  alert('error!' + JSON.stringify(err));
                }
            });
            return App.Images.find();
        }
    });

所以,首先,我什至不确定这是否是 ember 的使用方式。

其次,ajax 不应该是异步的吗?为什么在调用return App.Images.find()之前等待成功函数完成?不应该在成功函数完成之前调用 return 并且显示应该是空的吗?

第三(也是最后):如何在创建新对象之前清除数据存储?我的结果是重复的,或者更确切地说,我会继续将相同的东西添加到现有的数据存储中。

谢谢您的帮助!

4

0 回答 0