2014-10-29 3 views
0

Как я могу проверить, что все помощники метеора бежали?Метеорный помощник запустил

Когда я использую этот код, я получаю новый, пустой div. Когда я удаляю код из отображаемой функции и запускаю ее с консоли, все работает нормально.

Template.CasesShow.helpers({ 
    value: function (n) { 
    if (this.data) { 
     var result = this.data.filter(function (obj) { 
     return obj.name == n; 
     }); 

     if (result && result[0]) 
     return result[0].value; 
    } 
    } 
}); 

Template.CasesShow.rendered = function() { 
    $(document).ready(function() { 
    $textarea = $('[name=1]'); 

    var content = $textarea.val().replace(/\n/g, '<br />'); 

    $textarea.replaceWith($('<div class="box">' + content + '</div>')); 
    }); 
}; 

<template name="CasesShow"> 
    <textarea class="w-input box" placeholder="{{_ 'laborauftrag.praxis'}}" name="1" data-name="1">{{value 1}}</textarea> 
</template> 

Так что я думаю, Метеор не вставлено значение еще, что странно, потому что он не должен работать обработанную функцию, то, верно?

Как я могу убедиться, что Meteor запускает помощников?

+0

Что делает знак $ перед вашим именем переменной textarea? –

+1

Скажите, что это объект jQuery. Идея приходит отсюда: https://github.com/airbnb/javascript#jquery – zimt28

+0

Можете ли вы опубликовать HTML-код для шаблона, с которым вы работаете. Я считаю, что «помощник» будет запускаться после «rendered», потому что обработанный только заботится об основном HTML в шаблоне. Мне кажется очень странным, что вы будете вводить html в свой 'rendered'. – Shaded

ответ

0

Template.rendered = func будет запускаться один раз перед помощником шаблона (и задолго до того, как ваш маршрут предоставит вам данные). Ваш шаблон не работает, если у вас есть функция Template.rendered, потому что в вашей рендерируемой функции вы заменяете текстовое поле на div, а в помощнике вы возвращаете значение, которое устанавливается в текстовое поле, которое больше не существует (потому что Template.CaseShow.rendered заменил его <div>.

Если вы можете предоставить более подробную информацию о том, что вы на самом деле пытаетесь достичь здесь, мы можем решить, что. То, что вы сейчас предназначен поведение метеора.

Если то, что вы хотите достигнуть, покажите свой контент в div, но после замены /n на <br>, я считаю, что вы можете сделать это, выполнив это регулярное выражение на своем data в помощнике шаблона.

0

Положите console.log("FIRED VALUE HELPER"); и сделайте то же самое для своего .renderedconsole.log("TEMPLATE RENDERED"); Код залогинится в консоли вашего браузера клиента. Для chrome я нажимаю правой кнопкой мыши на браузере и выбираю элемент проверки. Затем выберите консоль из массива журналов. Ваш клиент код будет расслоение плотной выглядеть следующим образом:

Template.CasesShow.helpers({ 
    value: function (n) { 
     console.log("FIRED VALUE HELPER"); 


Template.CaseShow.rendered = function() { 
    console.log("FIRED RENDERED"); 

Если вы не видите журнал в консоли клиента браузера,/визуализации функции помощника не дозвонились.

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

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