2013-03-26 5 views
0

Я большой поклонник ICanHaz, и я пытаюсь напрямую вписать его в новое приложение Marionette, которое я создаю. Тем не менее, идя от this post, я написал это, что достигает в метод визуализации и изменяет его в марионеток:Интеграция iCanHaz и Marionette

// Set up Initalizer 
    APP.addInitializer(function() { 

     //Reach into Marionette and switch out templating system to ICH 
     Backbone.Marionette.Renderer.render = function(template, data){ 
      return ich[template](data); 
     } 

     //Create Router 
     new APP.Routers.GlobalRouter(); 

     //Start Backbone History 
     Backbone.history.start(); 

    }); 

Если я прохожу через эту функцию, все данные, кажется, работает хорошо. Однако, когда он используется и пытается использовать его для макетов и элементов, ничто не добавляется и не добавляется. Это от моего GlobalRouter:

//Grab the main Layout 
     var layout = new APP.Views.LayoutView(); 

     //Render that layout 
     layout.render(); 


     //Make the model 
     var userModel = new APP.Models.UserModel({ 
      "user_name" : "[email protected]", 
      "tenant" : "Ginger Ale is Great" 
     }); 

     //Make the Header Region 
     var headerRegion = new APP.Views.HeaderView({model: userModel}); 
     layout.header.show(headerRegion); 

Это все происходит в методе, который вызывается при ударе индекса. Нет ошибок JS, поэтому мне нечего делать. Тем не менее, в функции рендеринга я добавляю данные в тело, он добавит (однако разрушит мою структуру и структуру региона).

Я сохраняю свои шаблоны в index.html.

Может ли кто-нибудь помочь в этом?

ответ

1

Хорошо, я не мог найти простой способ сделать это с помощью ICH. Однако из-за другого SO, который я нашел, очень похожую функциональность можно найти только с помощью Mustache.

Используя этот код:

Backbone.Marionette.TemplateCache.prototype.compileTemplate = function(rawTemplate) { 
    return Mustache.compile(rawTemplate); 
} 

позволяет изменить визуализатор, так что вы можете вытащить шаблоны усов из index.html, используя шаблон вызова марионетка в. Шаблон усов выглядит следующим образом:

<script id="headerTemplate" type="text/template"> 
     <p>{{user_name}}</p> 
     <p>{{tenant}}</p> 
    </script> 

Разница заключается в том, что тип «текст/шаблон» в отличие от «текст/html». В противном случае он действует очень похоже.

Надеюсь, это поможет кому-то еще.

 Смежные вопросы

  • Нет связанных вопросов^_^