为什么我无法通过一个功能获得我的价值?我正在做测试的休息请求,所以你只能得到一个日期,并且总是告诉我未定义的值。
$http.get('app/components/home/controller/test_calendar.json').then(function(value) {
$scope.example2 = value.data.data[0];
//console.log($scope.example2);
});
$scope.setDayContent = function(date, content) {
console.log($scope.example2);
};
我使用$ scope.example2或其他值获得值undefined
。
使用我的第一个控制台,数据显示良好
答案 0 :(得分:3)
我认为你在http请求(这是异步的)之前调用了setDayContent(),所以在设置$ scope.example2之前。 你可以通过取消注释'then'函数中的console.log来检查这一点,看看你是否有你的价值。
如果从html中的用户操作调用函数setDayContent()(我想,因为它在范围内) - 例如一个按钮 - 你可以禁用它直到加载数据,如下所示:< / p>
<button ng-click="setDateContent(...)" ng-disabled="!example2">
答案 1 :(得分:0)
答案 2 :(得分:0)
从json获取值后需要调用$ scope.setDayContent函数,注意$ http调用是异步的
// Code goes here
angular
.module('myApp', [])
.run(function($rootScope) {
$rootScope.title = 'myTest Page';
})
.controller('testController', ['$scope', '$http',
function($scope, $http) {
/*my JSON file test_calendar.json
test_calendar = {
"data": [{
"name": "nikhil"
}]
}*/
$http.get('test_calendar.json').then(function(value) {
$scope.example2 = value.data.data[0];
$scope.setDayContent();
});
$scope.setDayContent = function(date, content) {
alert($scope.example2);
};
}
])
&#13;
<!DOCTYPE html>
<html data-ng-app="myApp">
<head>
<link rel="stylesheet" href="style.css">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body data-ng-controller="testController">
<p></p>
</body>
</html>
&#13;