Я пытаюсь создать приложение emberjs, и у меня возникли проблемы с наилучшим подходом к созданию ui, который я бы хотел. Я хочу иметь приложение с компонентом выбора детализации, а когда на определенном уровне разрешить пользователю выбирать элемент и добавлять его в свою корзину/корзину. Идея высокого уровня состоит в том, что itemGroups находятся на верхнем уровне, а затем элементы в каждой группе элементов (на данный момент достаточно двух уровней).Создать древовидный вид в emberjs
У меня есть следующий jsfiddle, который дает простой пример. В этом примере у меня есть мои группы, а затем ниже моего ковша. То, что я хотел бы сделать, - это когда я нажимаю на групповое обновление этой части представления, чтобы отображать элементы в этой группе.
Как только у меня есть, что в конечном итоге я бы хотел, чтобы пользователь мог выбрать эти элементы и добавить их в их ведро. По сути, пользователь может перемещаться по иерархии групп/элементов, чтобы выбрать элементы для добавления в их ведро.
Я уверен, что я слишком усложняю это, но не знаю, как это сделать.
HTML
<script type="text/x-handlebars" data-template-name="application">
<h1> ember - latest jsfiddle </h1>
{{itemGroup}}
<br>
<br>
{{outlet}}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h2> Bucket Items: </h2>
<div>{{model}}</div>
</script>
<script type="text/x-handlebars" data-template-name="itemGroup">
<h2> Groups </h2>
{{#each ig in controllers.itemGroup }}
<div class="buttonlink">{{ig}}</div >
{{/each}}
</script>
JS
App = Ember.Application.create({});
App.ApplicationController = Ember.ObjectController.extend({
needs: "itemGroup",
itemGroup: Ember.computed.alias("controllers.itemGroup")
});
App.ItemGroupController = Ember.ArrayController.extend();
App.ItemGroupView = Ember.View.extend({
templateName: 'itemGroup',
click:function(){
alert('i should replace the item group view with item details');
return false;
}
});
Ember.Handlebars.helper('itemGroup', App.ItemGroupView);
App.IndexRoute = Ember.Route.extend({
model: function() {
return "my bucket"
},
setupController: function (controller, model) {
this._super(controller, model);
this.controllerFor('itemGroup').set('model', ['group a', 'group b', 'group c', 'group d']);
}
});
Update
См this fiddle я есть обновить свой оригинальный пример, основанный на некоторых вещах, найденных через чопперы комментарии. Я хочу просто обновить раздел групп с элементами в группе и оставить раздел ведра, мои маршруты будут основаны на ведре для загрузки текущего состояния ведра, а затем позволяют пользователю просверлить группы/элементы , последнее обновление показывает больше, о чем я думаю.
Я могу заставить его работать, я не уверен, является ли это «ember» способом такого взаимодействия или если есть более идиоматический способ.
Вы поняли это? – chopper
У меня есть что-то, что работает на основе моей последней скрипки, которую я опубликовал (http://jsfiddle.net/EsXPm/2/), она работает, хотя я не уверен, что это «ember» способ сделать это. Я собираюсь повторить его больше в выходные, я опубликую то, что я придумал. – broschb