Fix Ember/Handlebars

This commit is contained in:
Jed Hunsaker
2013-12-14 14:21:00 -06:00
committed by Jed Hunsaker
parent 7469c06f42
commit a63e5a7e1e
4 changed files with 270 additions and 874 deletions
+52 -47
View File
@@ -1,20 +1,21 @@
/// <reference path="ember.d.ts" />
/// <reference path="../handlebars/handlebars.d.ts" />
var App;
App = Em.Application.create();
App.president = Em.Object.create({
name: "Barack Obama"
name: 'Barack Obama'
});
App.country = Em.Object.create({
presidentNameBinding: 'MyApp.president.name'
});
App.country.get('presidentName');
App.president = Em.Object.create({
firstName: "Barack",
lastName: "Obama",
firstName: 'Barack',
lastName: 'Obama',
fullName: function () {
return this.get('firstName') + ' ' + this.get('lastName');
}.property()
@@ -24,47 +25,51 @@ App.president.get('fullName');
declare class MyPerson extends Em.Object {
static createMan(): MyPerson;
}
var Person = Em.Object.extend<typeof MyPerson>({
var Person1 = Em.Object.extend<typeof MyPerson>({
say: (thing) => {
alert(thing);
}
});
declare class MyPerson2 extends Em.Object {
helloWorld(): void;
}
var tom = Person.create<MyPerson2>({
name: "Tom Dale",
helloWorld: () => {
this.say("Hi my name is " + this.get('name'));
var tom = Person1.create<MyPerson2>({
name: 'Tom Dale',
helloWorld: function() {
this.say('Hi my name is ' + this.get('name'));
}
});
tom.helloWorld();
Person.reopen({ isPerson: true });
Person.create().get('isPerson');
Person1.reopen({ isPerson: true });
Person1.create<Em.Object>().get('isPerson');
Person.reopenClass({
Person1.reopenClass({
createMan: () => {
return Person.create({ isMan: true })
return Person1.create({ isMan: true });
}
});
Person.createMan().get('isMan');
// ReSharper disable once DuplicatingLocalDeclaration
declare var Person1: typeof MyPerson;
Person1.createMan().get('isMan');
var person = Person.create({
firstName: "Yehuda",
lastName: "Katz"
var person = Person1.create<Em.Object>({
firstName: 'Yehuda',
lastName: 'Katz'
});
person.addObserver('fullName', () => { });
person.set('firstName', "Brohuda");
person.addObserver('fullName', null, () => { });
person.set('firstName', 'Brohuda');
App.todosController = Em.Object.create({
todos: [
Em.Object.create({ isDone: false })
],
remaining: () => {
remaining: (function() {
var todos = this.get('todos');
return todos.filterProperty('isDone', false).get('length');
}.property('todos.@each.isDone')
}).property('todos.@each.isDone')
});
var todos = App.todosController.get('todos');
@@ -86,29 +91,29 @@ App.husband.set('householdIncome', 90000);
App.wife.get('householdIncome');
App.user = Em.Object.create({
fullName: "Kara Gates"
fullName: 'Kara Gates'
});
App.userView = Em.View.create({
userNameBinding: Em.Binding.oneWay('App.user.fullName')
});
App.user.set('fullName', "Krang Gates");
App.userView.set('userName', "Truckasaurus Gates");
App.user.set('fullName', 'Krang Gates');
App.userView.set('userName', 'Truckasaurus Gates');
App.user.get('fullName');
App = Em.Application.create({
rootElement: '#sidebar'
});
var view = Em.View.create({
var view = Em.View.create<Em.View>({
templateName: 'say-hello',
name: "Bob"
name: 'Bob'
});
view.appendTo('#container');
view.append();
view.remove();
App.AlertView = Em.View.extend({
priority: "p4",
priority: 'p4',
isUrgent: true
});
@@ -121,21 +126,21 @@ App.ListingView = Em.View.extend({
App.userController = Em.Object.create({
content: Em.Object.create({
firstName: "Albert",
lastName: "Hofmann",
firstName: 'Albert',
lastName: 'Hofmann',
posts: 25,
hobbies: "Riding bicycles"
hobbies: 'Riding bicycles'
})
});
Handlebars.registerHelper('highlight', (property, options) => {
Handlebars.registerHelper('highlight', function(property, options) {
var value = Em.Handlebars.get(this, property, options);
return new Handlebars.SafeString('<span class="highlight">' + value + '</span>');
});
App.MyText = Em.TextField.extend({
formBlurredBinding: 'App.adminController.formBlurred',
change: (evt) => {
change: function() {
this.set('formBlurred', true);
}
});
@@ -145,26 +150,26 @@ var textArea = Em.TextArea.create({
});
App.ClickableView = Em.View.extend({
click: (evt) => {
alert("ClickableView was clicked!");
click: () => {
alert('ClickableView was clicked!');
}
});
var container = Em.ContainerView.create();
var container = Em.ContainerView.create<Em.ContainerView>();
container.append();
var coolView = App.CoolView.create(),
childViews = container.get('childViews');
childViews.pushObject(coolView);
Person = Em.Object.extend({
sayHello: () => {
console.log("Hello from " + this.get('name'));
var Person2 = Em.Object.extend<typeof Em.Object>({
sayHello: function() {
console.log('Hello from ' + this.get('name'));
}
});
var people = [
Person.create({ name: "Juan" }),
Person.create({ name: "Charles" }),
Person.create({ name: "Majd" })
Person2.create({ name: 'Juan' }),
Person2.create({ name: 'Charles' }),
Person2.create({ name: 'Majd' })
];
people.invoke('sayHello');
@@ -172,19 +177,19 @@ var arr = [Em.Object.create(), Em.Object.create()];
arr.setEach('name', 'unknown');
arr.getEach('name');
Person = Em.Object.extend({
var Person3 = Em.Object.extend<typeof Em.Object>({
name: null,
isHappy: false
});
var people2 = [
Person.create({ name: 'Yehuda', isHappy: true }),
Person.create({ name: 'Majd', isHappy: false })
Person3.create({ name: 'Yehuda', isHappy: true }),
Person3.create({ name: 'Majd', isHappy: false })
];
people2.every((person, index, self) => {
if (person.get('isHappy')) { return true; }
people2.every((person: Em.Object) => {
return !!person.get('isHappy');
});
people2.some((person, index, self) => {
if (person.get('isHappy')) { return true; }
people2.some((person: Em.Object) => {
return !!person.get('isHappy');
});
people2.everyProperty('isHappy', true);
people2.someProperty('isHappy', true);
+151 -771
View File
File diff suppressed because it is too large Load Diff