【发布时间】:2019-04-19 03:29:02
【问题描述】:
好的,我知道这是一个非常愚蠢的问题。在制作这个线程之前,我到处寻找,我完全无法弄清楚。这是我的代码。我的问题是在将值从 getJSON 传递到角度控制器之间,我的数组丢失了它的值。什么是我在这里尝试做的正确方法?
function getJSON(json) {
data = [];
$.each(json, function (index, value) {
data.push(value);
});
console.log(data); // Accurately logs array data
return data;
}
function passValue() {
return getJSON();
}
app.controller('ExampleController', function($scope) {
x = passValue()
$scope.title = x[0]; // Throws error
console.log(x); // Only returns an empty array
}
这是我在我的 html 文件中的一个脚本。 100% 有效。
$(document).ready(function() {
$.getJSON("{{ url_for('static', filename='movies.json') }}?id={{ movie_id }}", function(json) {
getJSON(json);
});
例如,这是可行的。
function getJSON(json) {
data = [];
$.each(json, function (index, value) {
data.push(value);
});
console.log(data) // Acurrately logs array data
document.getElementById('exampleDiv').innerHTML = data[0] // Accurately appends array data (0 being title)
}
【问题讨论】:
-
这段代码看起来简化了,是吗?我怀疑缺少一些关键行,例如
fetch或类似的东西 -
我的 getJSON 方法没有简化。它适用于获取我的 json 数据。它是从另一个脚本调用的方法。我可以用它来正常地将 json 值放入 html 中,但我正在尝试弄清楚如何使用 HTML 来完成它。我会将其他代码放入我的主帖中。
-
嗯,有趣。我很惊讶,如果
x是一个空数组,那么$scope.title = x[0];会引发错误,因为应该 只需将undefined分配给$scope.title。可能是我不熟悉的棱角分明的东西 -
是的,我对 angular 也很不熟悉,我敢肯定这个问题有一个简单的解决方案,我只是想不出一个。老实说,我可能只是愚蠢!
-
您在
passValue函数中调用getJSON()时没有参数。正如 getJSON 函数定义所期望的那样,这似乎不正确。
标签: javascript jquery angularjs json