无法将JavaScript变量插入Jade

时间:2015-02-18 09:32:21

标签: meteor pug

我正在尝试将普通的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
  });
}

1 个答案:

答案 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";
  }
});