Как создать подстанции без маршрута в тлеющем угле.Яш 1.6.икс


Я хотел бы создать что-то вроде приложения admin, которое доступно на каждой странице моего существующего ember 1.6.приложение X. Он будет иметь свой собственный state-machine (маршрутизатор), позволяющий ему загружать различные контроллеры/шаблоны в зависимости от его собственного состояния. Я видел много подобных дискуссий, которые вращаются вокруг наличия нескольких государственных машин (маршрутизаторов) или широкого использования подмаршрутов, но ничего действительно не попало в точку.

Есть ли ясный способ создать то, что находится в эффект двух приложений ember на одной странице?

Вложенному приложению не обязательно иметь маршруты, которые интерпретируются в строке url. Он также не должен поддерживать свое состояние, когда родительское приложение изменяет маршруты / состояния. Его можно сбрасывать каждый раз, когда родительское приложение переходит на другой маршрут. Чего я хочу избежать, так это повторения одного и того же кода снова и снова внутри нескольких контроллеров в Родительском приложении. Я также хотел бы избежать загрязнения приложений или глобальных уровней.

Ниже приведен список обсуждений, которые я изучил. Самое близкое, что я могу найти, что имеет смысл, - это работа над потоками Эмбера (которая еще не закончена). Или я должен буквально смотреть на создание новой государственной машины с помощью плагина ember-states для суб-приложения?

Чтобы быть ясным, я не ищу кого-то, кто напишет код для меня. Просто обсуждение того, как это должно быть сделано с ember 1.6.x как это происходит в настоящее время доступный.

Http://discuss.emberjs.com/t/route-less-substates/2269

Http://discuss.emberjs.com/t/is-there-a-reason-we-can-not-have-nested-routes/1845

Посылаю действие Эмберу.StateManager: is goToState обязательно?

Https://github.com/emberjs/ember.js/issues/406

Https://github.com/emberjs/ember.js/issues/4767

Http://discuss.emberjs.com/t/concurrent-states-in-ember/5042

Https://github.com/nathanhammond/ember-flows-generator

Https://github.com/emberjs/ember.js/issues/406#issuecomment-3702356

3 5

3 ответа:

Вы можете запускать несколько приложений встроенный изолированный Уголек внутри другого приложения Эмбер.

Встроенное приложение Ember может управлять состоянием URL, как и любое другое приложение, или вы можете настроить его на состояния маршрутизации , но не взаимодействуют с URL.

Взгляните на документацию по встраиванию приложений.

Отрывок:

App = Ember.Application.create({
  rootElement: '#app'
});

App.Router = Ember.Router.extend({
  location: 'none' // To disable manipulating URL
});

Вы также можете обмениваться кодом между приложениями. Например, чтобы поделиться моделью данных Ember.

var MainApp     = Ember.Application.create({});
var AdminApp    = Ember.Application.create({rootElement: '#admin-container'});

AdminApp.Router = Ember.Router.extend({location: 'none'});

MainApp.User    = DS.Model.extend({});
AdminApp.User   = MainApp.User;

Это может быть то, что вы ищете:

Https://github.com/tildeio/conductor.js

Я думаю, вы можете использовать query-params я не получил ваш вариант использования полностью, но проверить это http://instructure.github.io/ic-tabs/query-params.html#/?country=2&food=2