预期的模板或空,找到:未定义



我的应用程序中有一个功能,可以显示客户列表,然后编辑所有客户的页面。当用户重定向到编辑页面"预期模板或空,找到:未定义"时出现错误

以下是我的代码供参考 路线.js

Router.route('/user/:userId', function () {
this.render('customeredit');
this.layout('mainNav');
});

.HTML

<template name="customeredit">
{{#customerData}}
{{fname}}
{{/customerData}}
</template>

.JS

import { Template } from 'meteor/templating';
import { ReactiveVar } from 'meteor/reactive-var';
import '../templates/editUser.html';
import { Customers } from '../../imports/api/customers.js';
Template.customeredit.helpers({
customerData: function() {
var customerId = 'NpWkSWRpkQJKsNecG';
console.log(customerId);
console.log(Customers.findOne({_id: customerId}));
}
});

另外,请告诉我们如何从我上面的JS文件中的url中获取用户ID,因为我生成的URL是:http://localhost:3000/user/NpWkSWRpkQJKsNecG,我需要在助手中获取"NpWkSWRpkQJKsNecG"。

希望这可以解决您的问题并回答您的问题。

  1. 为什么会收到"预期模板或空,找到:未定义"错误?

您是否在问题中提供了页面的所有代码? 如果是这样,那么我怀疑问题出在您的模板定义中,您正在使用自定义块助手(例如{{#customerData}})。

是否已定义此块帮助程序? 我想知道您是否只是尝试使用 customerData 模板帮助程序。 如果是这种情况,则模板定义应如下所示:

<template name="customeredit">
{{customerData}}
</template>

模板帮助程序调用只是简单地包装在{{ }}中。

  1. 如何从 url 访问用户 id 参数。

使用铁路由器,您可以使用this.params访问路由参数。 通常,您会先查找数据,然后将其传递给模板。 例如:

Router.route('/user/:userId', function () {
var user = Customers.findOne({_id: this.params.userId});
this.render('customeredit', {data: user});
this.layout('mainNav');
});

最新更新