javascript - 如何使用 Angular JS 从外部范围访问数组值

标签 javascript jquery angularjs json

好吧,我知道这是一个非常愚蠢的问题。在制作这条线之前我到处都查过了,但我完全无法弄清楚。这是我的代码。我的问题是,在将值从 getJSON 传递到 Angular Controller 之间,我的数组丢失了其值。执行我在这里尝试执行的操作的正确方法是什么?

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

最佳答案

我找到了解决我的问题的解决方案。如果有人有类似的问题,我希望这也能帮助你。

function getJSON(json) {
    data = [];
    $.each(json, function (index, value) {
        data.push(value);
    });
    console.log(data)
    update(data)
}

function update(data) {
    var $scope = angular.element(document.querySelector('#movie')).scope()
    $scope.$apply(function(){
        $scope.title = data[0];
    });
}

app.controller('MovieController', function($scope) {
});

关于javascript - 如何使用 Angular JS 从外部范围访问数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53329438/

相关文章:

javascript - 在javascript中将字符串转换为utf-8

javascript - 如何运行 npm 'filestream' 示例代码?

javascript - 获取第 N 周第 X 天的日期

javascript - 使用 jQuery 访问两种类型的输入

javascript - jQuery 'on()' 命令

jquery - Kendo Grid MVC - 刷新子/细节网格

angularjs - 如何使用 angularjs 检查表单有效性?

javascript - 选择框在迭代时不显示

javascript - 链接函数中的 $scope.watch()

javascript - 使用 AngularJS 时如何在 <title> 标签中隐藏 {{title}}?