$ http和ng-href范围传播

时间:2015-02-26 08:44:19

标签: angularjs

我有以下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";}也不起作用,我认为应该这样做。

1 个答案:

答案 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