我正在尝试将普通的JavaScript表达式插入到Jade文件中。但是当我将isAccepted
变量添加到我的代码中时,我的应用程序不断收到错误消息。这是错误消息。
您的应用崩溃了。这是最新的日志。
错误阻止启动:
构建应用程序时: jade-test.jade:Jade语法错误:预期的标识符,数字,字符串,>布尔值或null {{isAccepted? 'class1':'class2 ... ^ packages / compileJade / plugin / handler.js:44:1:无法读取未定义的属性'head'>(编译jade-test.jade)(在fileModeHandler处)
您的申请有错误。等待文件更改。
这是我的代码:
玉test.jade
template(name="layout")
h1 This is layout template
h2 This is h2 paragraph
h3 This is h3 paragraph
+hello
template(name="hello")
h4 This is home template
button Click me
p You have click me #{counter} times.
- var isAccepted = true
button(class=isAccepted ? 'class1' : 'class2') I'm the right choice.
玉test.js
if (Meteor.isClient) {
// counter starts at 0
Session.setDefault('counter', 0);
Template.hello.helpers({
counter: function () {
return Session.get('counter');
}
});
Template.hello.events({
'click button': function () {
// increment the counter when button is clicked
Session.set('counter', Session.get('counter') + 1);
}
});
Router.route('/', function() {
this.render('layout');
});
}
if (Meteor.isServer) {
Meteor.startup(function () {
// code to run on server at startup
});
}
答案 0 :(得分:0)
不确定是否支持在jade中插入这样的javascript代码,您应该使用帮助器。
我不认为三元表达式语法也是有效的,再次使用帮助器。
JADE
template(name="hello")
h4 This is home template
button Click me
p You have click me #{counter} times.
button(class=isAccepted) I'm the right choice.
JS
Template.hello.helpers({
isAccepted: function(){
var isAccepted = true;
return isAccepted ? "class1" : "class2";
}
});