我有 Angular 模板,使用 ng-repeat 显示项目列表,它对项目的属性进行比较。
我希望逻辑保留在模板中并立即显示结果,但下面的逻辑会抛出错误,并且无法进行 Angular 渲染。
正常替换单个字符有效,但不能替换多个字符。
<div ng-repeat="item in items">
<p>{{item.old_name}}</p>
<input ng-model="item.new_name">
<span>
{{item.old_name.replace(/ |_/g, '-') == item.new_name(/ |_/g, '-') ? "same" : "not same"}}
</span>
</div>
如何解决这个问题?
最佳答案
我相信您的问题是使用未转义的 |
符号,我不确定您将如何在 Angular 模板中转义字符串 - 但是(imo)下面的代码片段会是更合适的解决方案(尽管不符合您原来的问题参数)。
function ctrlr ($scope) {
$scope.items = [
{ name: 'name one', newname: 'name diff' },
{ name: 'name_two', newname: 'name two' },
{ name: 'name three', newname: 'name three' },
]
$scope.compareString = function(str, str2) {
return str.replace(/ |_/g, '-') === str2.replace(/ |_/g, '-') ? 'same' : 'different'
}
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="ctrlr">
<div ng-repeat="item in items">
{{ compareString(item.name, item.newname) }}
</div>
</div>
关于javascript - 字符串替换 Angular 模板逻辑中的多个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35665292/