这是资源
hq.factory('AvgUsersPerWeek', function ($resource) {
return $resource('/HQ/Graph/GetLoggedinUsersPerWeek')
});
控制器
hq.controller('AvgUsersPerWeekCtrl', function ($scope, AvgUsersPerWeek) {
$scope.xkey = 'Period';
$scope.ykeys = ['CountUsers'];
$scope.labels = ['Aantal'];
$scope.myModel = AvgUsersPerWeek.query();
/*
//example dataset that works, the fetched data has the same structure
[
{ "Period": "2013-04", "CountUsers": 2407 },
{ "Period": "2013-03", "CountUsers": 3351 },
{ "Period": "2013-02", "CountUsers": 2469 },
{ "Period": "2013-01", "CountUsers": 2246 },
{ "Period": "2012-12", "CountUsers": 3171 },
{ "Period": "2012-11", "CountUsers": 2155 },
{ "Period": "2012-10", "CountUsers": 1226 },
{ "Period": "2012-09", "CountUsers": 2245 }
]; */
})
据透露。如果我用它下面的数据集替换AvgUsersPerWeek.query(),它就可以了。所以我的资源出了问题(获取了它(Fiddler)。但是这个值并没有插入到我的图表中。
我已经仔细检查过,示例数据集与$ resource提取的数据集具有相同的结构。
我没有附上HTML,因为它有效。我想在我使用$ resources的方式上有一些东西。
答案 0 :(得分:1)
我猜你错过了资源中的回调。您应该在控制器中执行以下操作:
AvgUsersPerWeek.query(function(data) {
$scope.myModel = data;
});
有关详细信息,请参阅this page
在你的指令中,数据可能没有更新,你应该在指令中添加一个观察者(或观察属性),以根据资源的变化更新数据
$attrs.$observe('data', function(newVal){
console.log(newVal);
// The rest of your link
})
以下是jsfiddle
的更新版本问题作者更新:我更改了使用指令:
$scope.$watch(attrs.data, function (newVal) { ...
它有效,谢谢!