-1

它是Eco,问题是它应该只为部分模型(骨干)添加按钮,但如果不起作用,则声明。变量是可访问的,但owner.id a 是字符串,current_user.id 是数字。

<% if @owner?.id is current_user.id: %>
    <div class="info-add">
       <button class="button secondary tiny radius">
           <i class="fi-plus"></i>
           Add
       </button>
   </div>
<% end %>
4

1 回答 1

1

Eco 使用 CoffeeScript 作为模板语言并在 CoffeeScript 中,is==成为===JavaScript 版本。JavaScript 的严格相等运算符 ( ===)不进行类型转换,即使是 true,==也会这样做是 false 。'6' === 6'6' == 6

你说:

a是owner.id字符串并且current_user.id是数字

所以@owner.id is current_user.id永远都是假的。

如果您的客户端代码生成id字符串,那么它已损坏,您应该修复它。如果您的服务器@owner.id以字符串形式发送,那么您的服务器已损坏,您应该修复您的服务器以发送正确的 JSON;如果您无法修复服务器代码,那么您可以parse在模型中添加一个方法来为您修复它:

parse: function(response) {
    if(response.id)
        response.id = +response.id // or parseInt(response.id, 10) if you prefer
    return response;
}
于 2014-01-10T19:24:44.137 回答