【发布时间】:2014-11-04 16:08:30
【问题描述】:
我将 grunt usemin 和 filerev 与 uglify 一起用于版本化静态资产。
在我们遇到使用 if/else 运算符的情况之前,JS 文件中的角度 HTML 模板替换效果很好
if($scope.isPdf){
$scope.templateUrl = '/views/results/breakdown-detailed.html';
} else {
$scope.templateUrl = '/views/results/breakdown.html';
}
在 uglify 之后将事物转换为单行三元运算符
$scope.templateUrl=$scope.isPdf?"/views/results/breakdown-detailed.html":"/views/results/breakdown.html"}}
现在用于替换目标模板字符串的正则表达式不再捕获所有 html 案例
/templateUrl\s?[:=]\s?['"]([^"']+)["']/gm
有人有一个正则表达式可以涵盖这两个值的三元情况吗?
如果它还可以在单个正则表达式中涵盖原始案例,那就太好了。
$scope.templateUrl=$scope.isPdf?"/views/results/breakdown-detailed.html":"/views/results/breakdown.html"}}
if($scope.isPdf){
$scope.templateUrl = '/views/results/breakdown-detailed.html';
} else {
$scope.templateUrl = '/views/results/breakdown.html';
}
我会在 regexr 中测试一下。
【问题讨论】:
-
我可以看到解析单个独立构造,但是当它嵌入到范围语言内在函数中时它不会真正起作用。为此,您必须解析语言。
标签: javascript regex angularjs grunt-usemin