Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 带下划线模板变量的Haml插值_Backbone.js_Haml_Underscore.js - Fatal编程技术网

Backbone.js 带下划线模板变量的Haml插值

Backbone.js 带下划线模板变量的Haml插值,backbone.js,haml,underscore.js,Backbone.js,Haml,Underscore.js,我试图在haml模板中输出下划线模板变量,但我没有任何运气 HTML没有被转义,因此我似乎无法理解下划线变量没有呈现的原因 HAML-完整模板 %script{:type => "text/template", :id => "user_list_template"} %h4 Users #test %table.table.table-bordered %thead %tr %th # %th Name

我试图在haml模板中输出下划线模板变量,但我没有任何运气

HTML没有被转义,因此我似乎无法理解下划线变量没有呈现的原因

HAML-完整模板

%script{:type => "text/template", :id => "user_list_template"}
  %h4 Users
  #test
  %table.table.table-bordered
    %thead
      %tr
        %th #
        %th Name
        %th Nickname
        %th
          %tbody
          {{ _.each( users, function(user) { }}
            %tr
              %td {{= user.get('id') }}
              %td {{= user.get('name') }}
              %td {{= user.get('nickname') }}
              %td 
                %a.btn{:href => "{{= user.get('nickname') }}"}
                  View User
          {{ }); }}
<tr>
  <td>9</td>
  <td>TacoHell</td>
  <td>TacoHelll</td>
  <td>
    <a class="btn" href="<%= user.get('nickname') %>">
      View User
    </a>
  </td>
</tr>
<h4>Users</h4>
<div id='test'></div>
<table class='table table-bordered'>
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Nickname</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
  {{ _.each( users, function(user) { }}
    <tr>
      <td>{{= user.get('id') }}</td>
      <td>{{= user.get('name') }}</td>
      <td>{{= user.get('nickname') }}</td>
      <td>
        <a class='btn' href="{{= user.get('nickname') }}">
          View User
        </a>
      </td>
    </tr>
  {{ }); }}
  </tbody>
</table>
来源

%script{:type => "text/template", :id => "user_list_template"}
  %h4 Users
  #test
  %table.table.table-bordered
    %thead
      %tr
        %th #
        %th Name
        %th Nickname
        %th
          %tbody
          {{ _.each( users, function(user) { }}
            %tr
              %td {{= user.get('id') }}
              %td {{= user.get('name') }}
              %td {{= user.get('nickname') }}
              %td 
                %a.btn{:href => "{{= user.get('nickname') }}"}
                  View User
          {{ }); }}
<tr>
  <td>9</td>
  <td>TacoHell</td>
  <td>TacoHelll</td>
  <td>
    <a class="btn" href="<%= user.get('nickname') %>">
      View User
    </a>
  </td>
</tr>
<h4>Users</h4>
<div id='test'></div>
<table class='table table-bordered'>
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Nickname</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
  {{ _.each( users, function(user) { }}
    <tr>
      <td>{{= user.get('id') }}</td>
      <td>{{= user.get('name') }}</td>
      <td>{{= user.get('nickname') }}</td>
      <td>
        <a class='btn' href="{{= user.get('nickname') }}">
          View User
        </a>
      </td>
    </tr>
  {{ }); }}
  </tbody>
</table>

9
塔科霍尔
塔科赫尔
模板的Console.log

%script{:type => "text/template", :id => "user_list_template"}
  %h4 Users
  #test
  %table.table.table-bordered
    %thead
      %tr
        %th #
        %th Name
        %th Nickname
        %th
          %tbody
          {{ _.each( users, function(user) { }}
            %tr
              %td {{= user.get('id') }}
              %td {{= user.get('name') }}
              %td {{= user.get('nickname') }}
              %td 
                %a.btn{:href => "{{= user.get('nickname') }}"}
                  View User
          {{ }); }}
<tr>
  <td>9</td>
  <td>TacoHell</td>
  <td>TacoHelll</td>
  <td>
    <a class="btn" href="<%= user.get('nickname') %>">
      View User
    </a>
  </td>
</tr>
<h4>Users</h4>
<div id='test'></div>
<table class='table table-bordered'>
  <thead>
    <tr>
      <th>#</th>
      <th>Name</th>
      <th>Nickname</th>
      <th></th>
    </tr>
  </thead>
  <tbody>
  {{ _.each( users, function(user) { }}
    <tr>
      <td>{{= user.get('id') }}</td>
      <td>{{= user.get('name') }}</td>
      <td>{{= user.get('nickname') }}</td>
      <td>
        <a class='btn' href="{{= user.get('nickname') }}">
          View User
        </a>
      </td>
    </tr>
  {{ }); }}
  </tbody>
</table>
用户
#
名称
昵称
{{{}.each(用户,函数(用户){}
{{=user.get('id')}
{{=user.get('name')}
{{=user.get('昵称')}
{{ }); }}
我已经通读了之前提出的问题,但无法将其付诸实施。有什么想法吗

编辑1 添加了完整的模板

编辑2
模板的console.log

这与其说是一种解决方案,不如说是一种变通方法,但另一种方法是对下划线模板使用不同的语法(不涉及
)。如果你看:

您会发现,它们提供了一个Django/Mustache样式模板语法的替代示例:

如果您不喜欢ERB样式的分隔符,您可以更改 下划线的模板设置,以使用不同的符号来设置 内插代码。定义插值正则表达式以匹配表达式 这应该是逐字插入的,一个要匹配的转义正则表达式 应在HTML转义后插入的表达式,以及 计算正则表达式以匹配应在不使用 插入到结果字符串中。您可以定义或省略任何 三者的结合。例如,执行Mustache.js样式 模板:


当然,如果您正在考虑寻找一个更强大的模板系统,那么放弃
\uuu.template
而使用胡须、把手或类似的模板系统肯定不会有什么坏处。但是,如果您对下划线感到满意,则
\uuu.templateSettings.interpolate
将允许您在不使用

的情况下使用它,您可以说HTML没有被转义,但是在转义
的地方使用
href=“/%=user.get('昵称')%”“
。您是否按照链接中的建议将
:escape\u attrs
选项设置为false?@matt-这是一个错误,我的错误。他们应该是实际的字符。有人知道如何解决@machineghost在1月17日23:55提到的{{}错误的代码块问题吗?或者车把就是答案?你曾经这样做过吗?
%tbody{{{{}.each(用户,函数(用户){}%tr%td{{{=user.get('id')}}%td{{=user.get('name')}%td{=user.get('昵称')}%td%a.btn{:href=>“{{=user.get('昵称}}}}}}查看用户{{}}
未捕获的语法错误:意外标记)
不用担心(仅供参考,您也可以编辑您的答案,以“更漂亮”的格式添加类似信息)。至于错误,听起来好像它不喜欢你的模板;有没有可能粘贴到模板本身?我在我的OP中添加了完整的模板。另外,开始使用Require.js和handlebar或Mustache会更容易?我不清楚如何开始整合它们。