修改ng-click中的数据angularjs
问题描述:
我在调用ng-click时需要编辑数据。以下是代码:修改ng-click中的数据angularjs
<tr class="read" ng-repeat="data in records>
<td>
{{data.requestId}}
</td>
<td>
{{data.status}}
</td>
<a height="20" class="pointer"
ng-click="download(data.downloadPath)" target="_self"></a>
</td>
例如 - 如果data.downloadPath值为/opt/dummy/file.txt,我需要删除第一个正斜杠并给予路径为:选择/虚拟/ file.txt的
是否有可能在此编辑angularjs还是需要编辑控制器代码:
someSrv.someFunction()
.success(function(response){
$scope.records = response.data;
}
答
的角度表达仍然是常规的JavaScript,所以我想你可以去
ng-click="download(data.downloadPath.slice(1))"
或者,如果第一/
是可选的,而不是总是在那里,用正则表达式:
ng-click="download(data.downloadPath.replace(/^\//, ''))"
答
可以使用ng-if
指令检查值等于/opt/dummy/file.txt
。
<tr class="read" ng-repeat="data in records>
<td>
{{data.requestId}}
</td>
<td>
{{data.status}}
</td>
<div ng-if="data.downloadPath == '/opt/dummy/file.txt'">
<a height="20" class="pointer"
ng-click="download(data.downloadPath.slice(1))" target="_self"></a>
</div>
<div ng-if="data.downloadPath != '/opt/dummy/file.txt'">
<a height="20" class="pointer"
ng-click="download(data.downloadPath)" target="_self"></a>
</div>
</td>
答
最简单的事情是使用substr
方法
<a ng-click="download(data.downloadPath.substr(1))" target="_self"></a>
这将消除"/"
完全。 /dir/index.php
将成为dir/index.php
+0
它的工作原理。谢谢 ! – ani0710
答
试试这个
$scope.download = function(dataPath){
var string = "dataPath";
if (string.charAt(0) == "/") string = string.substr(1);
if (string.charAt(string.length - 1) == "/") string = string.substr(0,string.length - 1);
$scope.path = string;
}
* “的角度表达仍然是常规的JavaScript” *。不,这不对。也正因为这个正则表达式的例子不会工作,并抛出错误。 – dfsq
第一个选项是我需要的。谢谢 ! – ani0710