2016-05-12 4 views
0

Ich muss Daten bearbeiten, wenn ich ng-klicke. Unten ist der Code:Daten in ng-click ändern 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> 

z.B. - Wenn der Wert von data.downloadPath /opt/dummy/file.txt ist, muß ich den ersten Schrägstrich und geben Sie den Pfad entfernen, wie: opt/Dummy/file.txt

Ist es möglich, hier in AngularJS bearbeiten oder muss ich den Controller-Code bearbeiten müssen:

someSrv.someFunction() 
     .success(function(response){ 

      $scope.records = response.data; 
} 

Antwort

2

Ein Angular Ausdruck ist JavaScript noch regelmäßig, so dass ich glaube, dass Sie für

ng-click="download(data.downloadPath.slice(1))" 

oder wenn die erstegehenist optional und nicht immer da, mit einem regulären Ausdruck:

ng-click="download(data.downloadPath.replace(/^\//, ''))" 
+0

* "Ein Winkel Ausdruck JavaScript noch regelmäßig ist" *. Nein, ist es nicht. Auch deswegen wird das regexp Beispiel nicht funktionieren und Fehler werfen. – dfsq

+0

Die erste Option tut, was ich brauche. Vielen Dank ! – ani0710

0

Sie die ng-if Richtlinie können Sie überprüfen, ob der Wert auf /opt/dummy/file.txt gleich ist.

<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> 
1

einfachste Sache wäre substr Methode

<a ng-click="download(data.downloadPath.substr(1))" target="_self"></a> 

Diese "/" entfernen würde insgesamt zu verwenden. /dir/index.php würde dir/index.php

+0

Es funktioniert. Vielen Dank ! – ani0710

0

Versuchen werden diese

$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; 

} 
Verwandte Themen