Skip to content

Instantly share code, notes, and snippets.

@jeremyroman
Created July 10, 2014 19:11
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jeremyroman/e9329a0effa655d2e8e0 to your computer and use it in GitHub Desktop.
Save jeremyroman/e9329a0effa655d2e8e0 to your computer and use it in GitHub Desktop.
DAOListView + DAOListView = ???

Expected: can see three lists of detail views. Actual: can only see the first one; inspecting the DOM reveals that all three of the nested list views have the same ID (in my case, view3)

<!DOCTYPE html>
<script src="foam/core/bootFOAM.js"></script>
<link rel="stylesheet" href="foam/core/foam.css">
<script>
MODEL({
name: 'Gadget',
properties: ['id', 'inventor'],
});
MODEL({
name: 'Widget',
properties: [
'id', 'gizmo',
{
name: 'gadgets',
view: { model_: 'DAOListView', mode: 'read-only' },
factory: function() {
var dao = EasyDAO.create({ model: Gadget, daoType: 'MDAO', seqNo: true });
dao.put(Gadget.create({ inventor: 'kgr' }));
dao.put(Gadget.create({ inventor: 'braden' }));
dao.put(Gadget.create({ inventor: 'adamvy' }));
return dao;
},
}
],
});
MODEL({
name: 'WidgetController',
properties: [
{
name: 'widgetCount',
defaultValue: 0,
view: { model_: 'TextFieldView', mode: 'read-only' },
},
{
name: 'widgets',
view: { model_: 'DAOListView', mode: 'read-only', rowView: 'WidgetView' },
factory: function() {
var dao = EasyDAO.create({ model: Widget, daoType: 'MDAO', seqNo: true });
dao.put(Widget.create({ gizmo: 'Foo' }));
dao.put(Widget.create({ gizmo: 'Bar' }));
dao.put(Widget.create({ gizmo: 'Baz' }));
return dao;
},
},
],
});
MODEL({
name: 'WidgetControllerView',
extendsModel: 'DetailView',
templates: [
function toHTML() {/*
<h1>Widgets</h1>
$$widgets
*/},
],
});
MODEL({
name: 'WidgetView',
extendsModel: 'DetailView',
templates: [
function toHTML() {/*
<h2>$$gizmo{mode: 'read-only'}</h2>
$$gadgets
*/},
],
});
</script>
<foam model="WidgetController" view="WidgetControllerView"></foam>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment