当前位置: 首页 > 面试题库 >

下划线中的外部模板

束向荣
2023-03-14
问题内容

我使用Underscore模板。是否可以将外部文件 附加 为模板

在骨干视图中,我有:

 textTemplate: _.template( $('#practice-text-template').html() ),

 initialize: function(){                                            
  this.words = new WordList;            
  this.index = 0;
  this.render();
 },

在我的html中是:

<script id="practice-text-template" type="text/template">
   <h3>something code</h3>
</script>

它运作良好。但是 我需要外部模板 。我尝试:

<script id="practice-text-template" type="text/template" src="templates/tmp.js">

要么

textTemplate: _.template( $('#practice-text-template').load('templates/tmp.js') ),

要么

$('#practice-text-template').load('templates/tmp.js', function(data){ this.textTemplate = _.template( data ) })

但它没有用。


问题答案:

编辑:这个答案是旧的和过时的。 我将其删除,但这是“已接受”的答案。我会发表我的意见。

我不再提倡这样做。
相反,我会将所有模板都分成单独的HTML文件。有些人建议异步加载这些文件(Require.js或各种模板缓存)。这在小型项目上效果很好,但在具有大量模板的大型项目上,您发现自己在页面加载时发出了大量的小型异步请求,这是我非常不喜欢的。(嗯…好吧,您可以通过使用r.js预编译初始依赖项来使用Require.js来解决它,但是对于模板,这对我来说仍然是错误的)

我喜欢使用grunt任务(grunt-contrib-jst)将所有HTML模板编译为一个template.js文件,并将其包含在内。
您将获得世界上最好的IMO …模板,并将它们保存在文件中,对这些模板的编译在构建时(而不是运行时)进行,并且在页面启动时没有一百个微小的异步请求

下面的一切都是垃圾

对我来说,我更喜欢在模板中包含JS文件的简单性。因此,我可能会创建一个名为view_template.js的文件,该文件包含模板作为变量:

app.templates.view = " \
    <h3>something code</h3> \
";

然后,它就像将脚本文件像普通文件一样包含然后在您的视图中使用它一样简单:

template: _.template(app.templates.view)

更进一步,我 实际上 使用coffeescript,因此我的代码实际上看起来像这样,并避免了行尾转义符:

app.templates.view = '''
    <h3>something code</h3>
'''

使用这种方法可以避免在确实没有必要的地方使用require.js。



 类似资料:
  • >>> class MyClass(): ... def __init__(self): ... self.__superprivate = "Hello" ... self._semiprivate = ", world!" ... >>> mc = MyClass() >>> print mc.__superprivate Traceback (most recen

  • underline(resource $resourchHandle, Format::const $style): \Vtiful\Kernel\Format 示例 $format = new \Vtiful\Kernel\Format($fileHandle); $underlineStyle = $format->underline(Format::UNDERLINE_SI

  • 本文向大家介绍Python3中_(下划线)和__(双下划线)的用途和区别,包括了Python3中_(下划线)和__(双下划线)的用途和区别的使用技巧和注意事项,需要的朋友参考一下 在看一些Python开源代码时,经常会看到以下划线或者双下划线开头的方法或者属性,到底它们有什么作用,又有什么样的区别呢?今天我们来总结一下(注:下文中的代码在Python3下测试通过) _ 的含义 在python的类中

  • 问题内容: 我正在尝试使JLabel带有下划线。我到处搜寻,但一无所获。即使在属性中,也没有为JLabel下划线的选项。我能做什么? 问题答案: 要么

  • 本文向大家介绍python中单下划线和双下划线分别是什么?相关面试题,主要包含被问及python中单下划线和双下划线分别是什么?时的应答技巧和注意事项,需要的朋友参考一下 name:一种约定,python内部的名字,是用来与用户自动以的名字区分开,防止冲突

  • 问题内容: 我正在做一个redux教程,并且看到这样的呼叫: 在其他地方定义为: 下划线是什么“ _”?为什么使用它? 问题答案: 这是私有方法和变量的约定。在JavaScript中,没有类的真正隐私。 这意味着您不应在对象之外使用这些方法(以“ ” 开头)。从技术上当然可以,但是“ ”表示您不应该这样做。