我是Angular的新手,在继续编写教程时,我在编写模块时略微改变了习惯:
.state('sports.medals', {
url: '/:sportName',
templateUrl: 'sports/sports-medals.html',
resolve: {
sportService: function($http, $stateParams){
return $http.get('/sports/${ $stateParams.sportName }');
}
},
这在项目的其余部分完全编译,没有错误。但是,当对此函数进行调用时,它会将get
内容读取为整个字符串,而不是按原样解析内容。
显然是这样称呼的正确方法:
.state('sports.medals', {
url: '/:sportName',
templateUrl: 'sports/sports-medals.html',
resolve: {
sportService: function($http, $stateParams){
return $http.get(`/sports/${ $stateParams.sportName }`);
}
},
使用`
撇号/反引号代替单引号'
作为程序员,我在参数中使用javascript和/或双引号时几乎总是专门使用单引号,所以这让我感到惊讶并且不会立即显现出来。这种行为是否有理由在某处记录?我应该养成使用反引号而非单引号的习惯吗?我想避免其他这样的惊喜。
答案 0 :(得分:7)
反引号是字符串插值工作所必需的。这是一个名为模板插值的ES6功能:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals。
有时它可供您使用,但在浏览器支持https://caniuse.com/#feat=template-literals方面仍远未普及。熟悉它并尽可能使用它!
答案 1 :(得分:4)
模板文字由反向勾号(重音符)字符括起来,而不是双引号或单引号。
javascript中的模板文字/字符串文字使用后面的勾号。它们是E6特征,只是concatenation的语法糖。模板文字在现代浏览器中为widely supported,在nodejs中受支持。不使用模板时,您应该使用双引号("
)或单引号('
)。
MDN的文档将提供有关模板文字使用的更多信息:Template literals