Pull to refresh
46
0
Артем Андреев @aav

User

Send message
Ну кому-то больше нравится собирать интерефейс из кусочков, разложенных по переменным:
var loginButton;
if (loggedIn) {
  loginButton = <LogoutButton />;
} else {
  loginButton = <LoginButton />;
}

return (
  <nav>
    <Home />
    {loginButton}
  </nav>
);


Не говоря уж о всей мощи JS:
return (
  <section>
    <h1>Color</h1>
    <h3>Name</h3>
    <p>{this.state.color || "white"}</p>
    <h3>Hex</h3>
    <p>
      {(() => {
        switch (this.state.color) {
          case "red":   return "#FF0000";
          case "green": return "#00FF00";
          case "blue":  return "#0000FF";
          default:      return "#FFFFFF";
        }
      })()}
    </p>
  </section>
);


Представляю, что там в render будет в сколько-нибудь больших проектах, если по рукам сильно не бить и искуственно не ограничивать «всю мощь JS в HTML».
Все же, наверное, стоило в Caps Lock жирным написать, что это туториал для БЕТЫ. В бете еще не все вылизано, потому требуется понимание, как все функционирует. К слову, это же понимание требуется при написании сколько-нибудь серьезного приложения.

В районе релиза это все будет выглядеть как-то так:
npm install -g angular-cli
ng new PROJECT_NAME
cd PROJECT_NAME
ng serve
ng generate component my-new-component

Для тех, кто хочет просто поиграться по-быстрому: plnkr.co/edit => New => AngularJS 2.0.x (ES6/ES5/TS — выбирайте сами)
А что касается Rx, то сейчас они и решают, в каком объеме его надо включить в ядро: github.com/angular/angular/issues/4390
Т.е. в данный момент может придется подключить отдельно, хотя зависит от того, что надо, можно попробовать просто импортировать из
"@reactivex/rxjs/dist/cjs/Observable"
В каком смысле «вместе»? AsyncPipe — вроде и есть пример non-pure Pipe. Т.е. он сам по себе пример.
Вы про stateful/stateless (pure: boolean в терминологии Angular2)? Если да, то и в первой то версии они могли быть stateful, просто не рекомендовалось.

Или что-то типа одноразоваго stateful?
К сожалению, Вы не очень удачно выбрали время для публикации статьи. В том смысле, что Вы рассматриваете немного устаревшую версию, а именно в эти дни (вчера и сегодня) на AngularConnect представляют гораздо более актуальное состояние.

Самую актуальную информацию в данный момент проще всего получить в твиттере twitter.com/AngularConnect — там выкладывают ссылки на презентации, выступления и т.п.

Вот в частности keynote: g.co/ng/ac-keynote

По самому содержанию:
  • для двухстороннего связывания уже есть синтаксический сахар [()]
  • новый Angular не просто поддерживает TypeScript — он на нем написан, соответственно и свое приложение на Typescript писать очень удобно
  • не очень понял, как теневой дом помогает собирать готовые страницы на серверной части. Кому интересны изоморфные приложения на Angular, тому сюда github.com/angular/universal
  • про роутинг: docs.google.com/presentation/d/1bGyuMqYWYXPScnldAZuxqgnCdtgvXE54HhKds8IIPyI
  • директивы есть, куда же без них
  • фильтры тоже, просто называются теперь Pipe


Лучший способ получать последнюю информацию: gitter.im/angular/angular. Там же постоянно выкладывают ссылки на репозитории, с которых лучше начать, посмотреть, например:
github.com/pkozlowski-opensource/ng2-play
github.com/mgechev/angular2-seed
У John Papa тоже чего-то есть: github.com/johnpapa (в принципе вроде его Tour of Heroes и выкладывается на angular.io)
Вы как-то определили граничные условия подобной деавтоматизации? Когда начнете обратно автоматизировать? :) Или это специфика Вашего бизнеса, что есть определенные ограничения, до которых вы можете вырасти, и этот уровень вы можете себе позволить обрабатывать с использованием только человеческих ресурсов?
Вам впору статью писать о плюсах/минусах AngularJS и React/Flux с точки зрения архитектуры приложения. Наконец-то может получиться интересный обзор от того, кто более-менее глубоко работал и с тем и с тем. А то обычно какой-то перекос, когда обзор пишет человек, который с одним инструментом работал долго и глубоко, а второй попытался освоить за недельку.
Разница в понимании/непонимании происходящего. А потом трансляции заблуждений другим людям. С мифами надо бороться, по мере возможностей.

plnkr.co/edit/XuFKYjo9Wxi9aPKO7dQk?p=preview
Что там у вас не обновлялось?
Я не знаю, зачем вы все в кучу начали валить.

Я не просто отрицаю, я вам и пруф дал на основе вашего же плунка. Ваша изначальное обобщенное высказывание некорректно. Не вводите людей в заблуждение. Не каждая статья в интернете — это истина в последней инстанции. Максимум — это повод углубить и расширить свое понимание о работе фреймворка, а не зазубрить мифы.
Измените содержимое — это и есть то, что я первый раз в англоязычном варианте процитировал. Вы мой-то плунк посмотрели? Можете тоже самое сделать в своих новых.
Итого: по-умолчанию ничего не копируется. Когда вы пытаетесь каким-либо образом поменять переменную, у которой в имени нет точки, AngularJS просто не делает поиск по иерархии и устанавливает (создает) переменную с таким именем на текущем scope.

P.S. все также непонятно, какое это отношение имеет к getter-свойству?..
Нет, не истинна. Вот вам пруф plnkr.co/edit/VGLBaQbCsMciJvcHzKWz?p=preview — посмотрите в консоли. Просто scope прототипно наследуются.
Вы чересчур обобщили. Эта фраза имеет смысл в контексте ng-repeat, а не в целом по отношению к scope-иерархиям. И проблемой обычно является в связке с ng-model. Как там в примере и приведено.
Но ваш изначальный пример был про getter-свойство. Вы там память что ли экономили?
Но ссылку почему-то даете не на Javascript, потому немного сложно понять, что вы вообще имеете в виду.
Где вы там копирование нашли? Здесь?
Scope inheritance is normally straightforward, and you often don't even need to know it is happening… until you try 2-way data binding (i.e., form elements, ng-model) to a primitive (e.g., number, string, boolean) defined on the parent scope from inside the child scope. It doesn't work the way most people expect it should work. What happens is that the child scope gets its own property that hides/shadows the parent property of the same name.
Я столкнулся с известной проблемой, что примитивы по scope'ам не передаются, а копируются.

Что, куда и когда копируется?
За этим, казалось бы, маленьким пунктом на последнем месте:
Пользуйтесь параметром track by в директиве ng-repeat. Во первых это быстрее, а во вторых убережет от ошибки duplicates in a repeater are not allowed, которая возникает, когда мы пытаемся вывести одинаковые объекты в списке.

скрывается чуть ли не самая распространенная проблема тормозов AngularJS.

Упереться в количество биндингов — это еще постараться надо.
А вот пересоздавать изрядный кусок DOM на каждый чих у людей получается достаточно часто, чем многие бенчмарки от людей, не очень знакомых с AngularJS, и страдают.

Подробнее в этих ветках:
habrahabr.ru/post/246905/#comment_8207725
habrahabr.ru/post/246905/#comment_8262489
Потому что на момент написания статьи $validators еще не существавало. Этот механизм был добавлени только в 1.3.
Ваша позиция понятна, для вас HTML — это нечто нерасширяемое, предназначенное только для отображения страницы. У вас не страница является приложением, а приложение генерирует страницу.
Каждому свое, просто разные подходы. Время покажет, какой выживет :)

Information

Rating
Does not participate
Location
Таганрог, Ростовская обл., Россия
Registered
Activity