Angularjs:空对象,只有一次点击?

时间:2016-05-17 14:14:00

标签: javascript angularjs

这个功能我打电话给ng-click。

HTML

Centers

JS

<div class="col-md-offset-10">
    <div class="form-group">
    <a class="btn btn-default" ng-click="schedule ()">Add</a>
    </div>
</div>

这个功能我希望得到$scope.scheduleid={}; var inc=0; $scope.schedule = function () { inc += 1; console.log($scope.from); console.log ($scope.dateObj); if (inc == 1) { var schedule = {} schedule._type = "Schedule"; console.log($scope.dateObj); var insertSchedule = BasicJSONCreator.basicEdit (); insertSchedule.Calls[0].Arguments = []; insertSchedule.Calls[0].Arguments[0] = schedule; httpRequester.async (insertSchedule).then (function (data) { console.log(data.data.ReturnValues[0].scheduleID); $scope.scheduleid=data.data.ReturnValues[0] //This get response from my database console.log($scope.scheduleid ); // here object is get my data from database }); } $scope.getData(); } 的结果,但这里有问题。 当我点击$scope.scheduleid(空),但两次以上点击$scope.scheduleid(没有空并获取数据)。为什么我的第一次点击为空。

$scope.scheduleid

1 个答案:

答案 0 :(得分:1)

您正在发出HTTP请求,我认为存在问题。当您第一次通过点击呼叫您的功能时,您的呼叫正在处理中,您的功能将继续进行。

这就是为什么当你单击一次时,在你的函数结束时,你的对象是空的。一旦你的对象加载了 - 比如说,在第二次点击时,你最终会收到它。你应该做的是在处理之前等待你的HTTP呼叫结束。您可以通过脏方式($ timeout)或查看应提供有用信息的this one等解决方案来执行此操作。