Backbone-Marionette Wird angezeigt, bevor der Abruf abgeschlossen ist

Ich weiß, dass ich etwas Dummes tue, aber meine Backbone-Marionetten-App gibt mir Vorlagenfehler, die keinen Sinn ergeben. Es scheint, als würde ein einzelnes Element gerendert, bevor das Abrufereignis eintritt.

_.templateSettings = {
    interpolate: /\{\{(.+?)\}\}/g
};


MyApp = new Backbone.Marionette.Application();
MyApp.addRegions({
    TagsRegion: "#tagsHolder"
});



MyApp.NoItemsView = Backbone.Marionette.ItemView.extend({
    template: "#show-no-items-message-template"
});


MyApp.Tag = Backbone.Model.extend({

});
MyApp.TagCollection = Backbone.Collection.extend({
    model: MyApp.Tag,
    url: '/API/Tag'
});
MyApp.TagItemView = Backbone.Marionette.ItemView.extend({
    template: "#tag-template",
    tagName: 'li'
});


MyApp.TagCollectionView = Backbone.Marionette.CollectionView.extend({
    itemView: MyApp.TagItemView,
    emptyView: MyApp.NoItemsView,
    tagName: 'ul'
});


MyApp.addInitializer(function(options){
    var tagCollection = new MyApp.TagCollection({
    });
    var tagCollectionView = new MyApp.TagCollectionView({
        collection: tagCollection
    });

    tagCollection.fetch();
    MyApp.TagsRegion.show(tagCollectionView);
});

und meine html seite ist

<div id="TagsDiv">
    <h1>Tags</h1>
    <div id="tagsHolder"></div>
</div>    
<script type="text/template" id="show-no-items-message-template">
    No items found.
</script>

<script type="text/template" id="tag-template">
    {{ TagName }}
</script>


    <script type="text/javascript" src="/Scripts/Views/Home/Upload.js"></script>
    <script type="text/javascript">
        $(document).ready(function () {

            MyApp.start();
        });

Wenn ich die Schnurrbärte aus meiner Tag-Vorlage entferne, wird 1: "TagName" angezeigt. Wenn der Abruf abgeschlossen ist, wird die richtige Nummer angezeigt.

wenn ich die Schnurrbärte wieder reinstelle bekomme ich "TagName ist nicht definiert"

Ich habe das Gefühl, dass ich eines meiner Muster verkehrt herum habe. Ich bin einfach zu nah dran, um es zu sehen.

Danke - Mark

Antworten auf die Frage(3)

Ihre Antwort auf die Frage