Ember.js 使用ember-1.0.0-pre.4.min.js时出错

Ember.js 使用ember-1.0.0-pre.4.min.js时出错,ember.js,Ember.js,当我使用ember-1.0.0-pre.4.min.js时,我从Chrome的控制台调试器中得到以下错误: 未捕获的TypeError:对象原型只能是对象或空的ember-1.0.0-pre.4.min.js:18 未捕获的TypeError:无法调用未定义的方法“extend” 代码: Win = Em.Application.create({ View: {}, Model: {}, Controller: {} }); Win.M

当我使用ember-1.0.0-pre.4.min.js时,我从Chrome的控制台调试器中得到以下错误:

未捕获的TypeError:对象原型只能是对象或空的ember-1.0.0-pre.4.min.js:18 未捕获的TypeError:无法调用未定义的方法“extend”

代码:

Win = Em.Application.create({                
    View: {}, 
    Model: {},
    Controller: {}
});

Win.Model.ValuePair = Em.Object.extend({
    id: null,
    name: null
});

Win.View.BrandKeywordView = Em.TextField.extend({
    keyDown: function () {
        var value = this.get('value');

        if (value) {
            Win.Controller.BrandKeywordController.searchBrand(value);
            console.log(Win.Controller.BrandKeywordController.content[0].id);
        }
    }
});

Win.Controller.BrandKeywordController = Em.ArrayProxy.create({
    content: [],

    searchBrand: function (brandName) {
        var me = this;
        $.ajax({
            type: "POST",
            dataType: "json",
            contentType: 'application/json; charset=utf-8',
            url: 'brands/default.aspx/Search',
            data: '{keyword:"' + brandName + '"}',
            success: function (data) {
                var brands = $.parseJSON(data.d);
                me.content = [];
                for (var i = 0, max = brands.length; i < max; i++) {
                    me.pushObject(Win.Model.ValuePair.create({ id: brands[i].Id, name: brands[i].Name }));
                }
            }
        });
    }
});
Win=Em.Application.create({
视图:{},
型号:{},
控制器:{}
});
Win.Model.ValuePair=Em.Object.extend({
id:null,
名称:空
});
Win.View.BrandKeywordView=Em.TextField.extend({
keyDown:函数(){
var value=this.get('value');
如果(值){
Win.Controller.BrandKeywordController.searchBrand(值);
console.log(Win.Controller.BrandKeywordController.content[0].id);
}
}
});
Win.Controller.BrandKeywordController=Em.ArrayProxy.create({
内容:[],
搜索品牌:功能(品牌名称){
var me=这个;
$.ajax({
类型:“POST”,
数据类型:“json”,
contentType:'application/json;charset=utf-8',
url:'brands/default.aspx/Search',
数据:“{关键字:“+brandName+”}”,
成功:功能(数据){
var brands=$.parseJSON(data.d);
me.content=[];
对于(变量i=0,max=brands.length;i
但当我切换到ember-1.0.beta.2.min.js时,一切都正常

我做错了什么

我应该使用哪个版本


提前感谢。

如果没有详细研究您的代码,我猜应该是路由API。它在pre2和pre3之间完全更改,因此不向后兼容。看看

因此,您确实需要将代码“迁移”到新版本。它不仅适用于新版本

请注意,API已被pre4冻结。因此,在ember js的下一个主要版本发布之前,API向后兼容性问题不会再出现