2016-05-12 6 views
0

ng-clickを呼び出すときにデータを編集する必要があります。コードは次のとおりです。ng-click anglejsのデータを変更する

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

OPT /ダミー/ file.txtを

はそれが可能です: - data.downloadPathの値が/opt/dummy/file.txtであれば、私は最初のスラッシュを削除してパスを指定する必要がありますangularjsここで編集するか、私は、コントローラのコードを編集する必要があります:

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

      $scope.records = response.data; 
} 

答えて

2

は角度表現は、まだ通常のJavaScriptですので、私はあなたが

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

それとも最初かのために行くことができますねは正規表現で、常にそこにオプションではありません:あなたは値が/opt/dummy/file.txtに等しいかどうかを確認するためにng-ifディレクティブを使用することができます

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

を試してみてくださいになるだろう。いいえ、ちがいます。また、正規表現の例では動作しないため、エラーが発生します。 – dfsq

+0

最初のオプションは私が必要とするものです。ありがとうございました ! – ani0710

0

<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

最も簡単な方法は、substr方法

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

これは完全に"/"を削除しますを使用することであろう。 /dir/index.phpdir/index.php

+0

それは動作します。ありがとうございました ! – ani0710

0

* "角度表現はまだ通常のJavaScriptである" *この

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

} 
関連する問題