修改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(/^\//, ''))" 
+0

* “的角度表达仍然是常规的JavaScript” *。不,这不对。也正因为这个正则表达式的例子不会工作,并抛出错误。 – dfsq

+0

第一个选项是我需要的。谢谢 ! – ani0710

可以使用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; 

}