[已解决]AngularJS在模板上使用正则表达式替换

软文推广2个月前发布 刘老三
1 0

我有以下标记,显示 ng-model 的值:

<a ng-click=”downloadDocument()”>{{document.content.replace(/\d+\_/,””)}}</a>

在每个之前,document.content我添加一个数字和一个下划线,例如”12122141_document.txt”.我想使用 regex 替换这部分/\d+\_/。

{{ document.replace(” “,””) }}尽管有效,但这会在 AngularJS 中引发错误。

解决这个问题的唯一方法是指令还是我做错了什么?

解决方案

我修改了你的Plunker-Demo,它工作得很好。

提示:不要使用$scope“document”之类的名称空间。由客户保留/使用。

var app = angular.module(‘plunker’, []);

控制器

app.controller(‘MainCtrl’, function($scope) {
$scope.name = ‘World’;

$scope.fileName = {
content : function(){
return ‘1233_test.txt’.replace(/\d+\_/,””);
}
}

$scope.mpla = function () {
console.log(‘clicked’);
}

});

看法

<!DOCTYPE html>
<html ng-app=”plunker”>

<head>
<meta charset=”utf-8″ />
<title>AngularJS Plunker</title>
<script>
document.write(‘<base href=”‘ + document.location + ‘” />’);
</script>
<link rel=”stylesheet” href=”style.css” />
<script data-require=”angular.js@1.3.x” src=”https://code.angularjs.org/1.3.14/angular.js” data-semver=”1.3.14″></script>
<script src=”app.js”></script>
</head>

<body ng-controller=”MainCtrl”>
<p>Hello {{name}}!</p>
<a ng-click=”mpla()” ng-bind=”fileName.content()”></a>
</body>

</html>

© 版权声明

相关文章