[javascript] كيفية جعل مساعد نيزك قالب إعادة تشغيل / تقديم بعد تقديم قالب آخر؟


Answers

إذا كنت تريد الملاحة إلى إعادة بناء تلقائيا عند كونتنتويندو يجعل، كما اقترح هوبيرت أوغ، يمكنك أيضا استخدام وسيلة أنظف، وانخفاض مستوى إبطال السياقات:

var navDep = new Deps.Dependency;

Template.contentWindow.rendered = function() {
    ...
    navDep.changed();
}

Template.renderNav.contentData = function() {
    navDep.depend();

    // Get the data you need and prepare for displaying
    ...
}

انظر http://docs.meteor.com/#deps لمزيد من المعلومات.

إذا، من ناحية أخرى، كنت ترغب في تقديم قالب آخر يدويا، يمكنك استدعاؤه كدالة:

var html = Template.contentWindow();

لن يكون رد هتمل رد الفعل. إذا كنت بحاجة إلى التفاعل، استخدم:

var reactiveFragment = Meteor.render(Template.contentWindow);

انظر سكرينكستس في http://www.eventedmind.com/ على سبارك والتفاعل للحصول على تفاصيل حول كيفية عمل هذا.

تحديث

لإضافة جزء تم عرضه إلى دوم:

document.body.appendChild(Meteor.render(function () {
    return '<h1>hello</h1><b>hello world</b>';
}));

يمكنك أيضا الدخول إلى العقد المقدمة مباشرة باستخدام واجهة برمجة تطبيقات دوم:

console.log(reactiveFragment.childNodes[0]);
Question

لدي مساعد قالب يسمى {{ريندرناف}} في قالب ناف

على سبيل المثال

Template.Nav.renderNav

وضمن تلك الوظيفة المساعد أريد تحليل الناتج المقدمة من مساعد آخر داخل قالب مختلف

على سبيل المثال المساعد

Template.contentWindow.content

الذي يوفر هتمل ل

{{content}}

و دينرناف المساعد يريد أن جزء هتمل الذي يحل محل {{المحتوى}} لإنشاء هتمل ل

{{renderNav}}

كيف يمكنني ان افعل هذا؟ في الوقت الحالي، ينفذ المساعد {{ريندرناف}} أو يعمل بشكل أسرع وبالتالي يتعذر عليه تحليل هتمل الذي يحل محل {{كونتنت}}

Hugo - فعلت ما يلي في بلدي التعليمات البرمجية كما اقترحتم

Template.contentWindow.rendered = function() {
    debugger;  
    return Session.set('entryRendered', true);
};

Template.Nav.renderNav = function() {
    debugger;
    var forceDependency;
    return forceDependency = Session.get('entryRendered');
};

عند تشغيله، المصحح أولا توقف عند تنفيذ مساعد ريندرناف. (الذي يجعل من المنطقي مع ما أراه من حيث حالة السباق). ثم يعرض كونتنتويندو وأصابت نقطة التوقف فوق الجلسة. سيت ('إنتيرندرد'، ترو). ولكن بعد ذلك لا يتم تشغيل دريناف مرة أخرى كما تقترح أنه ينبغي. هل أسيء تفسير اقتراحك أو نفذته بشكل غير صحيح؟




Links