Следует ли стремиться позвонить .goToState только из штата ?
Возможно. Я не знаю этого наверняка, но мне кажется, что, поскольку государственный менеджер знает, в каком состоянии вы находитесь, это место для обеспечения правового перехода состояния. Если вы вызывали .goToState из-за пределов государственного менеджера, вы делаете это, не зная, в каком состоянии вы находитесь, и хотя иногда это нормально (может быть, это состояние, которое вы действительно можете достичь из любого другого штата), это не большая привычка
Я иногда нахожусь в зеркальном отражении в состоянии Менеджер на вид, например save: -> StateManager.send ("save"). Имеет ли смысл , или я что-то упускаю?
Мне нравится, что панграц должен сказать об этом.
Должны ли все модификации моделей (в общем) проходить через государственного менеджера?
Способ использования государственных карт, нет. Однако я видел, что некоторые люди, использующие карты состояния, почти полностью заменяют уровень контроллера, и если это так, как вы работаете, то да, это должно пройти через диспетчер штата. Шаблон должен избегать прямого манипулирования моделями из представлений; будь то уровень контроллера или менеджер состояния между ними, кажется мне спорным.
Способ использования графиков состояний, однако, для управления состоянием приложения выполняется государственный менеджер. Он может играть в диспетчере трафика для модификации моделей, если эта модификация изменит состояние приложения (например, если во время обновления есть индикатор прогресса), но мне кажется, что обновление модели не является частью его мандата; они принадлежат контроллерам.
Если один вид имеет различных состояний, следует, что быть смоделирован с помощью ViewState с детьми состояний, или я должен использовать вычисляемые свойства и просматривать свойства держать эту информацию только в целях (без государственного менеджера знание внутреннего состояния взглядов)?
Я думаю, что государственный менеджер должен знать (или должен знать) внутреннее состояние представления.
Из любопытства вы исходите из фона веб-разработки или фона для разработки настольных/мобильных приложений? Я пришел из веб-разработки, и диаграммы состояний стали для меня новой концепцией. Мне было очень полезно читать the canonical State Chart paper Дэвидом Харелом ('ware PDF!). Это удивительно читаемо для академической статьи и излагает концепцию базового состояния, большую часть мира SproutCore/Ember использует с конца 2010 года (то есть это то, что имел в виду у Michael Cohen, когда он писал Ки.)
С нетерпением жду обратная связь вы получите по этому вопросу. Все примеры, которые я могу найти в интерфейсах, слишком упрощены. Опять же, в Ember.js все так неожиданно, я уверен, что любые методы, которые вы и я придумали, «правильны», пока они работают :) (Я в настоящее время отказываюсь/переписываю постоянно растущее приложение моего для использования StateManager. Он работает хорошо, но я, как и вы, не уверен, что я делаю «правильно»). – jeremyosborne