从文本文件中获取随机行

时间:2016-02-22 14:35:17

标签: 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执行相同操作,将值放入范围值?

1 个答案:

答案 0 :(得分:1)

我可以为你提供Pseudocode。但是,访问文件时有一些列表。如果您没有运行任何类型的网络服务器而只是使用file://index.html,进行测试,那么您可能会遇到同源政策问题。参见:

http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy

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

另外,请参阅:AngularJS: factory $http.get JSON file了解更多详情。

在您的情况下,您可能希望在工厂中编写代码并获取数据并将其分配给范围变量,或者只是在控制器中编写代码并将值分配给您想要的变量。 / p>

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;
});