我在 Meteor 0.7.2 中有x-editable工作,但自从升级到 0.8.0 后,它不再正确渲染。我倾向于以一堆空标签结束。这是令人沮丧的,因为数据就在那里,只是在渲染函数被触发时还没有。
<template name="clientPage">
<header>{{> clientPageTitleUpdate}}</header>
</template>
<template name="clientPageTitleUpdate">
<h1><span class="title-update editable" data-type="text" data-pk="{{_id}}" data-name="title" data-value="{{title}}">{{title}}</span></h1>
</template>
Template.clientPageTitleUpdate.rendered = function() {
console.log(this.$(".title-update").text());
// set up inline as defaule for x-editable
$.fn.editable.defaults.mode = 'inline';
$(".title-update.editable:not(.editable-click)").editable('destroy').editable({
url: "empty",
toggle: "dblclick",
success: function (response, newValue) {
// update value in db
var currentClientId = $(this).data("pk");
var clientProperties = { title: newValue };
Clients.update(currentClientId, {$set: clientProperties}, function(error) {
if (error) {
Errors.throw(error.message)
}
});
}// success
});
}
我已经尝试了将 this 嵌入到另一个模板中的“新”渲染方法,如此处所述,它似乎也不起作用。
现在使用 x-editable 的最佳方法是什么,它只触发一次并且不能确保数据在那里。
我正在使用 Iron Router 并且我的模板没有嵌入到 {{#each}} 块中,这似乎是新渲染模型的基本解决方案。
这个问题与这个关于流星模板中的 x-editable 的旧主题有关。
任何帮助都将在这里非常感激。我很茫然。谢谢