<!doctype html> <html> <head> <meta charset="utf-8"> <title>无标题文档</title> <script src="http://localhost:81/js/jquery.min.js"></script> <script src="http://localhost:81/js/handlebars.js"></script> <script src="http://localhost:81/js/emberjs.js"></script> </head> <body> <script> function log(v){ console.warn(v) } var MyApp = {}; //demo1 MyApp.president = Ember.Object.create({ name: "Barack Obama" }); MyApp.country = Ember.Object.create({ //presidentName = Ember.Binding(MyApp.president.name) presidentNameBinding: 'MyApp.president.name' }); log( MyApp.country.get('presidentName') ); //demo2 MyApp.president = Ember.Object.create({ firstName: "Barack", lastName: "Obama", fullName: function() { return this.get('firstName') + ' ' + this.get('lastName'); // Tell Ember that this computed property depends on firstName // and lastName }.property('firstName', 'lastName') }); log( MyApp.president.get('fullName') ); //demo3 //新建模型,模型拥有say方法; var Person = Ember.Object.extend({ say: function(thing) { alert(thing); } }); //实例化Person //var person = Person.create(); //person.say("hello world"); var tom = Person.create({ name : "tom", helloWorld : function(){ this.say("Hi " + this.get("name")) } }); //tom.helloWorld(); var yehuda = Person.create({ name : "qihao", say : function(){ var name = this.get("name"); console.log( name ) //console.log( this._super() ) //this._super("hello"+name) } }); //yehuda.say() var loud = Person.extend({ say : function(thing){ //this._super有问题,不知道怎么回事; //this._super(thing); } }) loud("nono"); /* Person.reopen({ say : function(){ alert(1) } }) */ //(new Person).say() </script> <script type="text/x-handlebars"> The President of the United States is {{MyApp.president.fullName}} </script> </body> </html>