Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
У меня была проблема и я решил ее добавив в проект ангуляр. Теперь у меня есть Problem Directive Provider
Если сравнивать Ember и Angular, то первый намного проще.Почитайте комментарии по ссылке, что я дал выше. Это официальный форум эмбера.
Вообще сложно спорить и сравнивать, ведь фреймворки предназначены для совсем разных юскейсов: Angular для SPA (т.е. приложений без урлов и переходов — например, для Google Docs Writer)
<div>' в js меня слегка передернуло. Подхода ангуляра мне импонирует тем что это тот же хтмл.return <div>Hello {this.props.name}</div>; — первый же пример с оффсайта.есть ли другие наработки в сфере js, которые дают двойной дата биндинг и аналог $scope из коробки, но не используют всю кучу абстракций, от которых автор получил батхерт?
Кстати, именно по той причине, что есть некие сложности в работе с ключевым словом new, я всем всегда рекомендую не использовать Module.service() вообще, а ограничиться во всех случаях одним Module.factory() для простых сервисов и Module.provider() для конфигурируемых.Это сложно.
всем всегда рекомендую не использовать это слово перед конструкторами
function Animal(animalType, name) {
if (this instanceof Animal) {
throw new Error('Should be called without "new" keyword');
}
var instanceType = ({
'dog': Dog,
'cat': Cat,
'cow': Cow
})[animalType];
if (typeof instanceType == 'undefined') {
throw new Error('Unknown type of the animal');
}
return new instanceType(name);
}
Animal.prototype.say = function() { throw new Error('Not implemented'); };
// -----------------------------------------------------------------------------
function Dog(name) {
this.name = name;
}
Dog.prototype = Object.create(Animal.prototype);
Dog.prototype.constructor = Dog;
Dog.prototype.say = function() { return this.name + ' says Woof!'; };
// -----------------------------------------------------------------------------
function Cat(name) {
this.name = name;
}
Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;
Cat.prototype.say = function() { return this.name + ' says Meow!'; };
// -----------------------------------------------------------------------------
function Cow(name) {
this.name = name;
}
Cow.prototype = Object.create(Animal.prototype);
Cow.prototype.constructor = Cow;
Cow.prototype.say = function() { return this.name + ' says Mooo!'; };
// -----------------------------------------------------------------------------
var animals = [
Animal('dog', 'Sparky'),
Animal('cat', 'James'),
Animal('cow', 'Mathilda')
];
animals.forEach(function(animal) {
console.log([animal.constructor.name, animal instanceof Animal,
animal.say()].join(', '));
});
/*
Dog, true, Sparky says Woof!
Cat, true, James says Meow!
Cow, true, Mathilda says Mooo!
*/
некие сложности в работе с ключевым словом new
Вы мне Javascript сломали