Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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
可以将JQuery模板存储在.js文件或类似文件中吗?_Jquery_Asp.net - Fatal编程技术网

可以将JQuery模板存储在.js文件或类似文件中吗?

可以将JQuery模板存储在.js文件或类似文件中吗?,jquery,asp.net,Jquery,Asp.net,我有一个Web服务,它返回一个项目,可以是几种类型之一。我想使用jquery对它进行模板化,并根据它是什么类型的对象,使用适当的模板 我想知道存储各种模板的最佳方式是什么。我想把它们放在一个名为ItemTemplates.js的文件中或者其他任何文件都可以,每个文件都有一个名称,比如Cat_Template Dog_Template,我可以使用开关{}根据对象返回的类型加载正确的文件 jquery模板可以存储在js文件中吗?还有别的好办法吗?我使用的是asp.net,因此可能存在一个解决方案?如

我有一个Web服务,它返回一个项目,可以是几种类型之一。我想使用jquery对它进行模板化,并根据它是什么类型的对象,使用适当的模板

我想知道存储各种模板的最佳方式是什么。我想把它们放在一个名为ItemTemplates.js的文件中或者其他任何文件都可以,每个文件都有一个名称,比如Cat_Template Dog_Template,我可以使用开关{}根据对象返回的类型加载正确的文件


jquery模板可以存储在js文件中吗?还有别的好办法吗?我使用的是asp.net,因此可能存在一个解决方案?

如果您指的是在javascript文件中存储类似的内容:

<script id="myTemplate" type="text/x-jquery-tmpl">
    <li>
        <a href="${Url}" target="_blank">${Text}</a>
    </li>
</script>

  • 这是不可能的,因为HTML和.js文件不能解析为HTML。我能想到的唯一替代方法是在$(document).ready()期间从.js文件动态生成这样的HTML

    document.write('<script id="myTemplate" type="text/x-jquery-tmpl">template HTML</script>'); 
    
    document.write('template HTML');
    

    $(“”)
    .html('template html')
    .附于(“主体”);
    
    以前没有测试过,所以我不知道它是否有效。

    优秀的jQote(,)是一个灵活的jQuery模板库。从文档中:

    <script type="text/html" id="template">
    <![CDATA[
        <p class="greetings">
            Hello <%= this.name %>, how are you doing?
            May I offer you
            <% this.is_starving() ? %>
                some tasty peasant?
            <% : %>
                a refreshing Singha?
            <% ; %>
        </p>
    ]]>
    </script>
    
    
    你好,你好吗?
    我可以为您效劳吗
    一些好吃的农民?
    令人耳目一新的辛哈?
    

    ]]>

    您可以在单个文件中存储任意数量/数量的脚本块,我通常将它们与其余代码一起放入主
    .js
    。因为它们是标准的HTML脚本标记,所以它们也可以进入您的主页,或者通过AJAX加载并写入文档。

    我构建了一个轻量级模板管理器,可以通过AJAX加载模板,从而允许您将模板分离为更易于管理的模块。它还执行简单的内存缓存,以防止不必要的HTTP请求。(为了简洁起见,我在这里使用了jQuery.ajax)

    然后,您将按如下方式使用此代码,通过回调处理模板数据:

    Template.load('/path/to/template/file', function(tmpl) {
       var output = Template.render(tmpl, { 'myVar': 'some value' });
    });
    

    Eric Feminella为jQote2插件编写了一个简洁的补充,使得加载外部模板更加容易。见他的帖子:我喜欢这种方法。您可以使用这样的闭包来清理它:App.Template=(function(){var TEMPLATES=[];return{load:…render:…};})();
    var TEMPLATES = {};
    
    var Template = {
    
      load: function(url, fn) {
        if(!TEMPLATES.hasOwnProperty(url)) {
          $.ajax({
            url: url,
            success: function(data) {
              TEMPLATES[url] = data;
              fn(data);
            }
          });
        } else {
          fn(TEMPLATES[url]);
        }
      },
    
      render: function(tmpl, context) {
        // Apply context to template string here
        // using library such as underscore.js or mustache.js
      }
    
    };
    
    Template.load('/path/to/template/file', function(tmpl) {
       var output = Template.render(tmpl, { 'myVar': 'some value' });
    });