Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从文本文件中获取随机行_Javascript_Angularjs - Fatal编程技术网

Javascript 从文本文件中获取随机行

Javascript 从文本文件中获取随机行,javascript,angularjs,Javascript,Angularjs,我有以下代码可以根据需要从文本文件加载随机行: $.get('txt/messages.txt', function(txt) { var lines = txt.responseText.split("\n"); var randLineNum = Math.floor(Math.random() * lines.length); save(lines[randLineNum]); // random line from the text file }); 如何对Angular执行相同的操作

我有以下代码可以根据需要从文本文件加载随机行:

$.get('txt/messages.txt', function(txt) {
var lines = txt.responseText.split("\n");
var randLineNum = Math.floor(Math.random() * lines.length);
save(lines[randLineNum]); // random line from the text file
});

如何对Angular执行相同的操作,将值放在范围值中?

我可以为您提供伪代码。然而,当访问文件时,有一系列的事情。如果您没有运行任何类型的Web服务器,只是使用
file://index.html,
那么您可能会遇到同源策略问题。见:

许多浏览器不允许本地托管文件访问其他本地托管文件。Firefox确实允许这样做,但前提是您正在加载的文件与html文件(或子文件夹)包含在同一文件夹中

此外,有关更多详细信息,请参阅

在您的情况下,您可能希望在工厂中编写代码并获取返回的数据并将其分配给范围变量,或者只需在控制器中编写代码并将值分配给所需的变量

myApp.controller("fileController", function($scope, $http) {
$http.get('txt/messages.txt').success(function(data) { 
    var lines = txt.responseText.split("\n");
    var randLineNum = Math.floor(Math.random() * lines.length);
    $scope.varYouWant = randLineNum;
});

关于发出HTTP请求和将数据放入scope变量的指南并不缺乏……而且您已经有了选择随机行的代码……那么问题出在哪里呢?