2017-08-17 10 views
0
  • ファイルのパスを渡して、グリッドにファイル名だけを入れようとしています。
  • 現在、フォワードスラッシュで動作しますが、バックスラッシュでは機能しません。
  • バックスラッシュを使って全体のパスを渡すと、パス全体が使用されます。
  • あなたはそれを修正する方法を教えてくれますか?
  • シナリオテストを作業

以下の私のコードを提供/ player.txt はバックスラッシュを使用するとパス全体が使用されます

http://jsfiddle.net/besnpj54/8/

 template: "<a onclick=\"window.open('#= FileName#', 'popup', 'width=800,height=600,scrollbars=yes,resizable=no')\">#= FileName.substring(FileName.lastIndexOf('/')+1) #</a>" 
+0

私はあなたが戻って使用したいと思う文字列テンプレートをエスケープするようES7の一環として、ダニ。 – bassxzero

答えて

1

一つの解決策は、すべて置き換えることであろうシナリオテストの\ player.txtを動作していません\/を追加してからグリッドに追加します。ただ、このように:

$("#save").click(function(){ 
     grid.dataSource.add({"FileName":$("#fname").val().replace(/\\/g,"/"),"LastName":"Last Name"}); 
     $("#fname").val(''); 
}); 

http://jsfiddle.net/besnpj54/11/

ので、あなたが\\を入力し、実際に持っている\を取得するには、(あなたが\"で行ったように)\は特殊文字をエスケープするために使用されていることに注意してください。詳細については、このページに特殊文字ブロックを見て:https://www.w3schools.com/js/js_strings.asp

+0

ちょっと働いていますが、あなたはそれをどのように修正したのか教えてください。私は学ぶことができます –

+1

あなたのコードは/とはうまく動作しませんでしたが、\ではありません。あなたは/または\(あなたのjsfiddleの33行目にある)を検出するためにファイル名を追加する関数を改良することができます。または、私がしたように、関数kendoGrid()を呼び出す前に\を/に置き換えることができます。このトリックは$( "#fname")。val()。replace(/ \\/g、 "/") – Kamae

+0

ここで実行されます。https://stackoverflow.com/questions/45269041/zone-js-140-uncaught-typeerror-can not-read-property-remove –

関連する問題