2016-05-12 15 views
0

次のコードを実行すると、「ユーザー」がコンソールに正しく出力されますが、データソースで使用されている場合は$ scope.usersが定義されていないようです。データソースで$ scope.usersを数字に置き換えると、それは機能します。私は間違って何をしていますか?変数を持つAngular.jsデータソース

 $http({ 
      method: 'POST', 
      url: '/users' 
     }) 
     .then(function (response) { 
      $scope.users = response.data.users;         
      console.log($scope.users); 
     }, 
     function (response) { 
      console.log("Error: "+ response.data.result); 
     }) 

     $scope.activeUsers = new kendo.data.DataSource({ 
      data: [ 
       { 
        "status": "user alive", 
        "numUsers": $scope.users, 
        "statusColor": "#dc3c3f"       
       } 
      ] 
     }); 

答えて

1

あなた$http要求が完了する前に、あなたの$scope.activeUsersが定義されているので、それは可能性があります。以下を試してください

$http({ 
     method: 'POST', 
     url: '/users' 
    }) 
    .then(function (response) { 
     $scope.users = response.data.users;         
     console.log($scope.users); 
     $scope.activeUsers = new kendo.data.DataSource({ 
      data: [ 
      { 
       "status": "user alive", 
       "numUsers": $scope.users, 
       "statusColor": "#dc3c3f"       
      } 
      ] 
     }); 
    }, 
    function (response) { 
     console.log("Error: "+ response.data.result); 
    }) 
+1

まあ、まったく同じことを書くつもりです...あなたは '約束'についていくつかの文書を読むべきです。 Angularはそれらを多く使用します。 –

+0

合意済み - コールバック地獄から抜け出す –

関連する問題