Javascript 无法从JSON创建Ember对象

Javascript 无法从JSON创建Ember对象,javascript,json,ember.js,Javascript,Json,Ember.js,我在从JSON ajax数据源创建Ember对象时遇到问题。如果我以手动方式创建对象,它将完美工作,并且视图将得到更新。但是,如果数据本身来自JSON ajax数据调用,那么它就不起作用。如果我检查生成的对象,Ember模型对象就不会获得正确的getter和setter属性。有人知道为什么会这样吗 App.AlbumView = Ember.View.extend({ templateName:'album', albums:[], getAll:function() {

我在从JSON ajax数据源创建Ember对象时遇到问题。如果我以手动方式创建对象,它将完美工作,并且视图将得到更新。但是,如果数据本身来自JSON ajax数据调用,那么它就不起作用。如果我检查生成的对象,Ember模型对象就不会获得正确的getter和setter属性。有人知道为什么会这样吗

App.AlbumView = Ember.View.extend({
    templateName:'album',
    albums:[],
    getAll:function() {
        var self = this;

        //This works!
        self.albums.push(App.Album.create({title: 'test', artist: 'test'}));

        $.post('/Rest/list/album',null,function(data) {
            $.each(data, function (index, item) {

                //This does not work?!?
                self.albums.push(App.Album.create(item));
            });
        }, 'json');
    }
});

访问视图的实例变量时,应始终使用余烬
get('variableName')
set('variableName',newValue)
方法。如果您不这样做,就会发生奇怪的事情。

请对项目发出警报,查看输出内容。警报(项目);您使用POST请求而不是GET来从服务器获取数据有什么原因吗?您是否可以设置一个JSFIDLE(至少可以使用其中的一些位),以便我可以对其进行检查?我很感兴趣,但对其他设置了解不够,无法完全理解问题。视图不实现get和set。当我尝试调用它们时,我得到“没有这样的函数”错误。视图实现get和set,因为这些方法是在Ember.Observable中定义的,Ember.View(通过Ember.Object)扩展了这些方法。我明白了。奇怪。嗯,当我将集合移动到一个全局可访问的ArrayController时,它似乎起到了作用,我想get和set的使用会有所不同。所以我接受了答案。然后,我将尝试分别调试视图问题。