我有以下HTML代码:
<a ng-href="data:text/plain;charset=utf-8,{{dump}}" download="dump.json">dump.json</a>
然后是以下js代码:
$http.get('/something').success(function (data) {
$scope.data = data;
});
$scope.dump = $scope.data;
整个应用有效,表格填充了$scope.data
的数据,但<a ng-gref="data:..." />
没有。结果网址只是data:text/plain;charset=utf-8,
。但如果我设置$scope.dump = {hello: true}
,它就可以了。那么,为什么更改没有传播到ng-href
?
编辑:$scope.dump = function() {return "Hello";}
也不起作用,我认为应该这样做。
答案 0 :(得分:0)
在您的代码中,success
函数是异步,因此,虽然出现在 $scope.dump = $scope.data
语句之前,但它实际上运行在之后 - 当HTTP调用返回时。因此,$scope.dump
设置为undefined
。
实际上,$scope.dump
是多余的,只需使用:
<a ng-href="data:text/plain;charset=utf-8,{{data}}" download="dump.json">dump.json</a>
否则,请在$scope.dump
函数中设置$http.success
。