2017-02-23 4 views
0

고객 목록을 표시 한 다음 모든 고객에 대해 페이지를 편집하는 기능이 내 애플리케이션에 있습니다. 다음은 예상 템플릿 또는 null, found : 정의되지 않음

는 참조 Route.js

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

HTML

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

JS 내 코드입니다 : 사용자 리디렉션 "정의되지 않은 예상 템플릿 또는 null, 발견을"페이지를 편집 할 때 오류를 얻고있다

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})); 
    } 
}); 

또한 url에서 사용자 아이디를 가져올 수있는 방법을 알려주십시오. JS 파일 위의 y, 생성 된 URL은 http://localhost:3000/user/NpWkSWRpkQJKsNecG이며 헬퍼에서 "NpWkSWRpkQJKsNecG"를 가져와야합니다.

답변

0

문제가 해결되어 귀하의 질문에 대한 답변을 보내주십시오.

  1. "예상 템플릿 또는 null, found : undefined"오류가 발생하는 이유는 무엇입니까?

질문에 해당 페이지의 코드를 모두 입력 했습니까? 그렇다면 사용자 정의 블록 도우미 (예 : {{#customerData}})를 사용중인 템플릿 정의에 문제가 있다고 의심됩니다.

이 블록 도우미를 정의 했습니까? 대신 customerData Template 도우미를 대신 사용하려고하는지 궁금합니다. 그런 경우 다음 템플릿 정의는 다음과 같아야합니다

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

템플릿 도우미 호출은 단지 {{ }}에 싸여있다.

  1. url에서 user id 매개 변수에 어떻게 액세스합니까?

Iron Router를 사용하면 this.params을 사용하여 route 매개 변수에 액세스 할 수 있습니다. 일반적으로 데이터를 먼저 찾은 다음 템플릿으로 전달합니다. 예 :