标签: jquery-templates

修复链轮弃用:不推荐使用方法`register_engine`

版本

  • 红宝石 2.4.3
  • 导轨 5.1.3
  • 链轮 3.7.3
  • jquery-tmpl-rails 1.1.0

问题:

最新版本jquery-tmpl-rails会触发 sprockets 弃用警告:

DEPRECATION WARNING: Sprockets method `register_engine` is deprecated.
Please register a mime type using `register_mime_type` then
use `register_compressor` or `register_transformer`.

https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors 
(called from block (2 levels) in <class:Railtie> at /my/path/to/gems/jquery-tmpl-rails-ef6f58001d41/lib/jquery-tmpl-rails/engine.rb:10)
Run Code Online (Sandbox Code Playgroud)

尝试解决:

在弃用警告之后,gem 中的问题就在这里:https : //github.com/jimmycuadra/jquery-tmpl-rails/blob/master/lib/jquery-tmpl-rails/engine.rb#L10

目前是:

app.assets.register_engine(".tmpl", JqueryTemplate)

然后,我访问了 sprockets 指南,用于处理 sprockets 2,3,4 的弃用、可扩展性和合规性。https://github.com/rails/sprockets/blob/master/guides/extending_sprockets.md#supporting-all-versions-of-sprockets-in-processors

我尽最大努力通过在此叉上提交来纠正问题:https : //github.com/oceanshq/jquery-tmpl-rails/commit/de7a59894f512efb3c1eba432da3517f21d921a2

这是:

asset.register_mime_type 'application/javascript', extensions: ['.tmpl'], charset: :unicode
asset.register_preprocessor 'application/javascript', JqueryTemplate
Run Code Online (Sandbox Code Playgroud)

然而,当尝试运行 Web 应用程序或在 CI 上测试它时,这种尝试只是简单地处理故障。所以显然我错过了一些东西。

问题 …

ruby ruby-on-rails jquery-templates sprockets

5
推荐指数
0
解决办法
570
查看次数

jTemplates与jQuery模板.哪个更好?还有更好的吗?

我已经看到微软为jQuery创建了一个官方的jQuery模板插件.但是,我读过的j模板很受欢迎.我不知道我是否应该打扰jTemplates并直接进入jQuery模板或者给jTemplates一个去.

有什么建议?

注意:这是我第一次使用任何客户端模板框架.

jquery jquery-templates jtemplates

4
推荐指数
1
解决办法
2904
查看次数

jQuery模板在IE9 RC中不起作用

刚刚升级到IE9的RC,发现我使用jQuery模板的网页没有呈现模板内容.

当我在开发人员工具(以及Safari,FF等)中切换到IE8浏览器模式时,页面工作正常.

有人有任何想法吗?

jquery internet-explorer jquery-templates

4
推荐指数
1
解决办法
1万
查看次数

JQuery模板:将参数传递给函数

所以我有这个调用函数的JQuery模板:

<script id="Fred" type="text/x-jQuery-tmpl">
  <td>${functionX()}${Field2}</td>
</script>
Run Code Online (Sandbox Code Playgroud)

效果很好.但现在我想将参数传递给它,但以下内容不起作用.

<script id="Fred" type="text/x-jQuery-tmpl">
  <td>${functionX(${Field1})}${Field2}</td>
</script>
Run Code Online (Sandbox Code Playgroud)

有什么建议?

jquery-templates

4
推荐指数
1
解决办法
3396
查看次数

我可以在JQuery中追加它,但是它会淡入而不是立即出现吗?

具体来说,我有一个JQuery模板,我使用.tmpl将它追加到div.我的代码是:

$("#" + this.templateID).tmpl({ results: resultsArray }).appendTo("#" + this.targetID);
Run Code Online (Sandbox Code Playgroud)

这会在div的末尾敲打我的模板.但是,我想淡入它.我不想在页面上创建额外的div.

理想情况下,我想要做的是将模板化数据添加到页面,并选择最外层元素并将其设置为none,以使其显示为不可见.然后告诉它淡入,因此生成的标记与页面上已有的其他项无缝匹配.

任何想法如何做到这一点?

jquery jquery-templates

4
推荐指数
1
解决办法
1476
查看次数

与jquery一起使用的好的模板引擎

现在jquery团队已经停止了它的开发,jquery.tmpl有什么好的替代品.它现在将由jQuery UI团队协调,因为它将成为即将推出的jQuery UI Grid的依赖项.但是由于未来的电网还很遥远,我可以使用哪种引擎.我支持的是Cakephp

http://blog.jquery.it/2011/04/16/official-plugins-a-change-in-the-roadmap/

PS:关于这个主题的MOst问题已经过时,因此我问了这个问题.所以到2011年我应该去哪一个.

javascript jquery jquery-templates

4
推荐指数
1
解决办法
2649
查看次数

如何使用每个命令的jquery模板迭代一个对象数组

在Javascript中,我有一个User包含对象数组的department对象,如下所示:

user = 
{
   departments: [
        {id: 1, name: 'Department 1'},
        {id: 2, name: 'Department 2'},
        {id: 3, name: 'Department 3'}
   ]
}
Run Code Online (Sandbox Code Playgroud)

使用jquery模板(版本1.4.2)我想渲染一个<select>标签,如下所示:

<select name="departmentId" id="department">
    {{each departments}}
        <option value="{{= id }}">{{= name }}</option>
    {{/each}}   
</select>
Run Code Online (Sandbox Code Playgroud)

这不会在选项元素中生成任何值.如何使用模板访问每个部门对象的id和name属性.

jquery-templates

4
推荐指数
1
解决办法
7320
查看次数

使用JQuery/Json填充选择列表的最佳方法是什么?

目前我们的开发团队使用这种模式,但我不禁想知道是否有更快或更高效的方法来完成相同的任务.

HTML

<select id="myList" style="width: 400px;">
</select>
<script id="myListTemplate" type="text/x-jQuery-tmpl">
        <option value="${idField}">${name}</option>
</script>
Run Code Online (Sandbox Code Playgroud)

这是Javascript:

function bindList(url) {
    callAjax(url, null, false, function (json) {
        $('#myList').children().remove();
        $('#myListTemplate').tmpl(json.d).appendTo('#myList');
    });
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery json selectlist jquery-templates

4
推荐指数
1
解决办法
1万
查看次数

如果在jQuery模板中声明

如果未定义可变大小,则以下代码在Chrome中返回错误 " Uncaught ReferenceError:size not defined ":

<script type="text/x-jquery-tmpl">    
    {{if name && size}}
        <p>${name}</p>
        <p>${size}</p>
    {{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)

虽然这段代码工作正常:

<script type="text/x-jquery-tmpl">  
    {{if name}}
        {{if size}}
            <p>${name}</p>
            <p>${size}</p>
        {{/if}}
    {{/if}}
</script>
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式使它在Chrome中工作而不使用双if语句,为什么它会返回错误?

javascript jquery google-chrome jquery-templates

4
推荐指数
1
解决办法
1万
查看次数

无法在JQuery tmpl中的文本字符串上运行html

在我的项目中的JQuery模板中,我试图写出一个不对HTML进行编码的HTML字符串变量.当我像这样输出变量时:

 ${description}
Run Code Online (Sandbox Code Playgroud)

它导致原始HTML字符串输出标签,所有这些都是这样的:

<p>text <b>bold</b>  <i>italic</i></p>
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将标记转换为代码中相同位置的真实标记时:

   {{html $description}}
Run Code Online (Sandbox Code Playgroud)

不输出任何东西!

我尝试了很多传递变量的方法,但我认为html例程中有一些事情我没有得到.

谢谢.

更新:

以下是它的调用方式:

    this.$el.attr('data-id', tmplData.id).
          data('id', tmplData.id).html($.tmpl(this.template, tmplData));
Run Code Online (Sandbox Code Playgroud)

this.template是模板文件,tmplData是JSON,包括$ description和其他所需的变量.

另一个更新:

 {{html '<p>string</p>'}}
Run Code Online (Sandbox Code Playgroud)

表现得像预期的那样.但

 {{html $another_variable}}
Run Code Online (Sandbox Code Playgroud)

即使$ another_variable中没有HTML,也无法生成任何输出.

另一个更新:

我也尝试过:

 ${$item.html(description)}
Run Code Online (Sandbox Code Playgroud)

并将对模板的调用更改为

 this.$el.attr('data-id', tmplData.id).
         data('id', tmplData.id).
         html($.tmpl(this.template, tmplData, {
            truncate: _.truncateStrip,
            html: _.html,
        }));
Run Code Online (Sandbox Code Playgroud)

并编写了一个自定义的html例程来按照建议不变地传递字符串:

 html: function(str) {
        return str;
    }
Run Code Online (Sandbox Code Playgroud)

但仍然没有骰子.

jquery jquery-templates

4
推荐指数
1
解决办法
3863
查看次数