如何在html页面中只打印部分响应对象

时间:2017-07-19 04:57:40

标签: javascript html angularjs

我将文件路径连同文件名从spring控制器发送到html页面。 (即,D:/dataStacks/myStacks/myFilename.txt从弹簧控制器发送到js控制器)。 我想显示文件的完整路径以及网页上的文件名。 请建议我如何只从FILEPATH响应对象中返回文件名返回给js控制器。任何建议都会有所帮助。

js控制器:

myApp.controller('getPathController', function ($scope, MyFilesService) {
  $scope.getFilePathAndName = function () {
    MyFilesService.getFiles().then(
      function (response) {
        $scope.filePathAndName = response; // c:/dataStacks/myStacks/myFilename.txt
      },
      function (errResponse) {
        //error
      });
  }
  $scope.getFilePathAndName();
});

//service call
myFilesService.getFiles = function () {
    var Url = myURL + '/filesPathData/getFilePath.form';
    $http.get(repUrl).then(
      function (response) {
        //return response
      }
      //return statement
    }

弹簧控制器:

@RequestMapping(value = "/getFilePath", method = RequestMethod.GET,produces="text/plain")
public @ResponseBody String getFilePath1(HttpServletRequest request) throws Exception {
  String FILEPATH = "c:/dataStacks/myStacks/myFilename.txt";
  File f = new File(FILEPATH);
  //logic to deal with the file
  return FILEPATH;
}

HTML:

<html>

<body>
  FilePath with filename : {{filePathAndName}} //logic implementation //print only the filename from above got response object
  <h1>FileName here</h1>
</body>

</html>

在我的html页面中,我想打印从响应对象中获取的文件名。 {{filePathAndName}}包含D:/dataStacks/myStacks/myFilename.txt。如何在html页面中仅打印文件名myFilename.txt

4 个答案:

答案 0 :(得分:0)

要从路径中提取文件名,请尝试以下操作:

&#13;
&#13;
var filename = "c:/dataStacks/myStacks/myFilename.txt".split("/").slice(-1)[0];
console.log(filename);
&#13;
&#13;
&#13;

因此,您需要将表达式{{filePathAndName}}更改为{{filePathAndName}}.split("/").slice(-1)[0]

答案 1 :(得分:0)

这里一个方便的功能是lastIndexOf()。这会将/substring$scope.filePathAndName的最后一个实例抓取到您要查找的最后一个部分。这是一个快速模型,看起来像:

&#13;
&#13;
var temp = "C:/folder/project/other/myFile.txt";
    var index = temp.lastIndexOf("/") + 1;
    console.log(temp.substring(index));
&#13;
&#13;
&#13;

答案 2 :(得分:0)

在控制器中,从斜杠中分割路径并获取数组的最后一个元素。

$scope.filePathAndName = response.split(/[/]+/).pop();

答案 3 :(得分:0)

简单的字符串函数/方法就足够了:

var string = 'c:/dataStacks/myStacks/myFilename.txt';
var fileName = string.substring(string.lastIndexOf('/')+1);
console.log(fileName); // myFilename.txt