2014-04-17 45 views
5

我正在尝试制作指令模板多行。这可能吗?指令定义中的多行模板

myApp.directive('myDir', function() { 
return { 
    restrict: 'E',   
    template: '<div> 
       |Hello, 
       |{{test}}! 
       |</div>' 
    }; 
}); 

这里是一个Fiddle看看我的意思。

回答

13

在每行的末尾使用“\”。

myApp.directive('myDir', function() { 
return { 
    restrict: 'E',   
    template: '<div>\ 
       |Hello,\ 
       |{{test}}!\ 
       |</div>' 
}; 

这里是你Fiddle

+1

请注意这一点。因为它不是ECMAScript的一部分! - > https://github.com/jgable/open-source/blob/master/styleguides/JavaScript/language-rules.md#multiline-string-literals – Christoph

2

你也可以使用JavaScript函数join()来实现这一点,我认为比较好看。

myApp.directive('myDir', function() { 
    return { 
     restrict: 'E', 
     template: ['<div>', 
      'Hello, ', 
      '{{test}}!', 
      '</div>'].join(''), 
    }; 
}); 

JSFiddle是在这里(我删除了|的,使它看起来更好)。

3

你也可以串联各个字符串:

myApp.directive('myDir', function() { 
return { 
    restrict: 'E',   
    template: '<div>' + 
      'Hello,' + 
      '{{test}}!' + 
      '</div>' 
    }; 
}); 
0

我刚刚得知你可以使用波浪号(`)为多行模板下面的符号,

myApp.directive('myDir', function() { 
    return { 
     restrict: 'E',   
     template: `<div> 
       |Hello, 
       |{{test}}! 
       |</div>` 
    }; 
}); 
+0

用于包含多行字符串的符号是反向(')并且是ES 2015标准的一部分,更多信息可以在这里找到 - https://stackoverflow.com/questions/27678052/what-is-the-usage-of-the-backtick-symbol-in-javascript – deepesh

0

您可以连接各个串将这些加号放在每行的开头,而不是结尾。如果你使用4-space tabstop,这个效果很好:template是8个字符长,所以所有的加号都会排在冒号下面。

myApp.directive('myDir', function() { 
return { 
    restrict: 'E',   
    template: '<div>' 
      + 'Hello, ' 
      + '{{test}}!' 
      + '</div>' 
    }; 
}); 

这是JSFiddle

+0

这是令人惊讶的困难找到有关JavaScript是否关心是否将加号放在尾行或下一行开头的信息。如果有人有确切来源,请分享。在FF,Chrome,IE 11中测试过。我想,如果情况并非总是如此,句法变化很久以前就发生了。 –

相关问题