无法提供模板

时间:2015-08-18 12:28:52

标签: javascript handlebars.js

我使用把手,我使用帮助器在模板中使用条件; 我对其他架构进行了ajax调用,我收到了这个数据

{  
 "firstName":"Paul",
 "lastName":"Smith",
 "operationType": "Achat",
 "transactionDate":"17/08/2015",
 "operationValue":3,
 "reason":"Achat nourriture Tim Horton",
 "transactionDate":"17/08/2015"
}

我的模板

{{#each this}}
  <tr>
    <td>{{firstName}} {{lastName}}</td>
    <td>{{transactionDate}}</td>
    <td>{{reason}}</td>
    <td>{{#ifCond operationType '==' 'Achat'}}
          {{operationValue}}
        {{else}}
         0
       {{ifCond}}
    </td>
   <td>{{#ifCond operationType '==' 'Dépôt'}}
         {{operationValue}}
       {{else}}
         0
       {{ifCond}}
  </td>
  <td>{{#ifCond operationType '==' 'Retrait'}}
        {{operationValue}}
      {{else}}
        0
     {{ifCond}}
  </td>
</tr>
{{/each}}

条件寄存器

Handlebars.registerHelper('ifCond', function (v1, operator, v2, options)     {

switch (operator) {
    case '==':
        return (v1 == v2) ? options.fn(this) : options.inverse(this);
    case '===':
        return (v1 === v2) ? options.fn(this) : options.inverse(this);
    case '<':
        return (v1 < v2) ? options.fn(this) : options.inverse(this);
    case '<=':
        return (v1 <= v2) ? options.fn(this) : options.inverse(this);
    case '>':
        return (v1 > v2) ? options.fn(this) : options.inverse(this);
    case '>=':
        return (v1 >= v2) ? options.fn(this) : options.inverse(this);
    case '&&':
        return (v1 && v2) ? options.fn(this) : options.inverse(this);
    case '||':
        return (v1 || v2) ? options.fn(this) : options.inverse(this);
    default:
        return options.inverse(this);
  }
});

当数据在模板中时,我收到此错误

未捕获错误:ifCond与每个

不匹配

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

您的模块未在模板中正确关闭。当您使用{{#tag}}打开某个区块时,必须有匹配的{{/tag}}。在您的代码中,{{#ifCond}}块没有一个正确关闭(缺少斜线),并且顶级{{#each}}也未关闭(您应该在模板末尾有{{/each}} )。

答案 1 :(得分:1)

您的数据中没有operationType属性。尝试添加它。

XDocument xdoc = XDocument.Load(filename);
xdoc.Element("configuration").Element("appSettings").Elements("add")
   .Where(x => (string)x.Attribute("key") == "pass").Remove();
xdoc.Save(filename);