模板助手中的异常:错误:无法在没有DOM的模板实例上使用$

时间:2014-11-08 18:23:04

标签: meteor iron-router meteor-blaze meteor-helper meteor-autoform

任何人都使用#with?

遇到此问题

//调用模板中的代码,Helper这里仅用于传递参数子模板

{{#with inputControlCheckboxHelper "middleName" "Middle Name" "" "middleNameDNA" "Address" "Alexander"}}
{{> inputControlCheckbox}}
{{/with}}

//只使用此助手传递参数

Template.registerHelper("inputControlCheckboxHelper",
function (inputName, inputTitle, inputSubTitle, checkboxName, templateName, inputPlaceHolder) {
    return {
        fieldName: inputName,
        title: inputTitle,
        subTitle: inputSubTitle,
        checkbox: checkboxName,
        template: templateName,
        placeHolder: inputPlaceHolder
    };
});

//子模板,这称为另一个助手

<template name="inputControlCheckbox">
{{#with shouldBeDisabled template checkbox}}
  {{> afFieldInput name=../fieldName}}  
{{/with}}

{{> afFieldInput name=checkbox type="boolean-checkbox"}}
</template>

//用于检查上述输入是否应被禁用的模板。

Template.registerHelper("shouldBeDisabled", function (formName, checkBoxName) {
    var checkBox = AutoForm.getFieldValue(formName, checkBoxName);

    if (checkBox === true) {
        return {disableMe: true, notApplicable: "N/A"};
    }
    else if (checkBox === false) {
        return {disableMe: false, notApplicable: ""};
    }
    else if (checkBox === "") {
        return {disableMe: false, notApplicable: ""};
    }
});

在Chrome控制台中,堆栈跟踪如下所示: enter image description here

如果我删除{{#with shouldBeDisabled模板复选框}}行,我也不会例外。此外,即使有例外,一切都呈现查找,复选框与输入一起使用。

我使用的是Iron Router 1.0.1,Meteor 1.0和Autoform 4.0.1

1 个答案:

答案 0 :(得分:1)

更新到Autoform 4.0.2解决了这个问题。