Meteor を使用すると、奇妙な動作が発生します。
client/ で定義されたテンプレート ヘルパーにいます。関数「percentCompleted」は、client/lib/helper.js で定義されたヘルパー関数です。戻り行で「percentCompleted」を呼び出すと、percentCompleted は正常に完了します。ただし、戻り行の外で percentCompleted を呼び出すと、コンソールは関数「percentCompleted」が未定義であるというエラーをログに記録します。テンプレート ヘルパーのどこで呼び出されるかによって、ヘルパー関数が定義または未定義になるのはなぜですか??
これは機能します:
Template.chapter.percentComplete = function(){
if(_.isEmpty(this))
return "";
return percentCompleted(this)
}
これにより、「percentCompleted」が未定義のエラーがスローされます。
Template.chapter.percentComplete = function(){
if(_.isEmpty(this))
return "";
var percentCompleted = percentCompleted(this)
return percentCompleted;
}