我有以下代码来根据需要从文本文件加载随机行:
$.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 做同样的事情,将值放入范围值中?
最佳答案
我可以为您提供伪代码。但是,访问文件时会列出一系列内容。如果您没有运行任何类型的网络服务器,而只是使用 file://index.html 进行测试,
那么您可能会遇到相同的情况 -原产地政策问题。请参阅:
http://code.google.com/p/browsersec/wiki/Part2#Same-origin_policy 。
许多浏览器不允许本地托管文件访问其他本地托管文件。 Firefox 确实允许这样做,但前提是您正在加载的文件与 html 文件位于同一文件夹(或子文件夹)中。
另请参阅:AngularJS: factory $http.get JSON file更多细节。
在您的情况下,您可能想要在工厂中编写代码并获取返回的数据并将其分配给范围变量,或者只是在 Controller 中编写代码并将值分配给您想要的变量。
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;
});
关于javascript - 从文本文件中获取随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556320/