edit упс Я пропустил "()".
Хорошо, проблема в том, что эти ссылки на локальные переменные в замыкании на самом деле не являются ссылками на локальные переменные - ониты часть строки .Код шаблона должен анализировать эту строку, поэтому, когда это происходит, факт, что в замыкании была функция с именем isBar (), из которой вызывался $ .tmpl (), действительно не имеет значения;jQuery не может получить к ним доступ, потому что вы просто не можете сделать это в JavaScript.
Вы можете , однако передайте третий параметр "options" в "$ .tmpl ()"и предоставить дополнительные вещи там.Я не уверен на 100%, как это сделать, поскольку я немного поиграл с плагином шаблонов, но я попробую jsfiddle, когда у меня будет такая возможность.Я думаю, что вы в основном сделали бы что-то вроде этого:
funny: function(){
$.tmpl("test", [{"name":"Fo", "attribute":[{"name":"bar", "value":"how"}]},
{"name":"Foo", "attribute":[{"name":"fnord","value":"can"}]},
{"name":"Fooo", "attribute":[{"name":"bar","value":"this"}]},
{"name":"Foooo", "attribute":[{"name":"Bar", "value":"be"}]}
], { isBar: isBar });
}
В чем я не уверен, так это то, что вы называете это "$ {isBar ()}" или "$ {item.isBar()} "внутри текста шаблона.