Frage

I just started with Ember and have a basic web app structure in place. I have a partial template set up and want to bring some test data into it. I can see my test data if I use my 'home' template for it, but I can not get it into my collections partial template. I'm almost certain it has to be related to basic Ember concepts that I have no familiarity with. Here is my simplified html and below is the Ember js. If anybody has any idea how I could bring the 'each' loop from 'home' template into my partial 'collections' template, I'll be very thankful:

[code]
<script type="text/x-handlebars" ><!-- data-template-name="application" -->
    <div id="main">
        <ul>
            <li>
               <image src="logo.png" style="width:439px;height:102px;"/>
            </li>
            <li>{{#link-to 'home'}}Home{{/link-to}} | {{#link-to 'help'}}Help{{/link-to}}</li>
        </ul>
    </div>

    <div class="collections">
        {{partial 'collections'}}
    </div>

    <div class="statistics">
        {{outlet}}
    </div>        
    </script>

    <script type="text/x-handlebars" id="collections">
        COLLECTIONS<br/>
        <!-- here is where I wand the 'each' loop to go -->
    </script>

    <script type="text/x-handlebars" id="home">
        OnLoad : This is Home Page<br/>            
       <ul>
            {{#each}}
                <li>
                <label>{{title}}</label>
                </li>
            {{/each}}
        </ul>          
    </script>

    <script type="text/x-handlebars" id="help">
        Welcome to Help Page
    </script>
[/code]

And here is JS code for the above: [code] App = Ember.Application.create();

App.Router.map(function(){
    this.resource('home', { path: '/' });
    this.resource('help');    
}); 

App.CollectionsRoute = Ember.Route.extend({
    model: function(){
        return items;
    }
});

App.HomeRoute = Ember.Route.extend({
   model: function(){
       return items;
   }
});
var items = [
  {
   id: 1,
   title: 'Item 1',
   belongsTo: 'parent path 1'
  },{
   id: 2,
   title: 'Item 2',
   belongsTo: 'parent path 2'
  },{
   id: 3,
   title: 'Item 3',
   belongsTo: 'parent path 3'
  }
];

[/code]
War es hilfreich?

Lösung

partial 'collections' have the same context of application template. So if you declare:

App.ApplicationRoute = Ember.Route.extend({
    model: function(){
        return items;
    }
});

Will be able to use:

<script type="text/x-handlebars" id="collections">
    COLLECTIONS<br/>
    <ul>
        {{#each}}
            <li>
            <label>{{title}}</label>
            </li>
        {{/each}}
    </ul>
</script>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top