好的,我知道这是一个非常愚蠢的问题。在创建此线程之前,我四处查看,但我完全无法弄清楚。这是我的代码。我的问题是,在将值从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)
}
答案 0 :(得分:1)
我找到了解决我的问题的解决方案。如果有人遇到类似问题,希望对您有所帮助。
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) {
});
答案 1 :(得分:0)
您可以使用window
在angular和任何组件之间存储和访问数据。 Angular也有一个名为$window
的包装器也可以访问它。
在javascript中:
function foo(value){
window.data = value;
}
成角度:
app.controller('ctrl', ['$scope', '$window', function($scope, $window) {
$scope.getData= function() {
//using $window
alert($window.data);
//Or
alert(window.data);
};
}]);