AngularJS在当时回调之外访问$ scope变量

时间:2017-03-18 10:29:38

标签: javascript jquery angularjs

我从我的Bootstrap Modal提交按钮调用一个方法,如下所示;

$scope.addProject = function() {
    $http.post('/cc-addProject' , $scope.project).then(function successCallback(response) {
        $('#myModal').modal('toggle'); 
        $scope.dataList = response.data;
      }, function errorCallback(response) {     
      });
    console.log("$scope.dataList : " + $scope.dataList); // I cannot access the same response.data here
};

这也是我在视图中调用addProject()的方法

<button type="button" class="btn btn-info pull-right"  style="margin-left:10px;" ng-click="addProject()" ng-if="selectedID == -1">Sumbit</button>

我想访问&#34; response.data&#34;我在后面的回调里面设置了$ scope.dataList 目前它没有使用上面的代码实时更新网格。

我该怎么做?

***********相关网格代码*********

<tbody>                             
    <tr role="row" class="odd" ng-repeat="project in dataList">
        <td>{{project.projectName}}</td>
    </tr>
</tbody>

2 个答案:

答案 0 :(得分:0)

您无法直接记录declare @flags int = 0; select top 1 @flags=count(*) from [HQWebMatajer].[dbo].[SecurityUserDetails] where [UserID]='faisal.3012' and [ReportName]='TotalSales'; if(@flags>0) BEGIN select top 1 UserID,ReportHide,RColumnName,RFilterName from [HQWebMatajer].[dbo].[SecurityUserDetails] where [UserID]='faisal.3012' and [ReportName]='TotalSales' END ELSE BEGIN select SecurityLevel,ReportHide,RColumnName,RFilterName From HQWebMatajer.dbo.SecurityLevelDetails sld where SecurityLevel=1 and ReportName='TotalSales' END 的更新值,因为$scope.dataList$http.post,但您确实希望从外部访问它,您需要从成功调用函数回调async function例如

$http.post

答案 1 :(得分:0)

您可以在回调之外为dataList设置观察程序。当response.data返回时,dataList会更新。然后,观察者回调中的代码将会运行。

相关问题