2016-08-18 19 views
0

私は以下に定義された関数を持っています。ここでは$scope.questionsはグローバル変数です。私は関数の外で更新されたグローバル変数の値を慰めたい$scope.questions.push("asdsd");関数内のグローバル変数を更新し、angularjs内の関数の外側で使用する方法

$scope.viewQuestion = function(item) { 
     //$scope.items = ['item1', 'item2', 'item3']; 
console.log(item); 
     //$scope.questions.push(item); 
     $scope.questions.push("asdsd"); 
     console.log($scope.questions); 
     //$cookieStore.put('question', $scope.questions); 

     var modalInstance = $modal.open({ 
      templateUrl: 'questionbank.view.html', 
      controller: 'questionbankController', 
      //$scope.products = products; 
      //size: size, 
      resolve: { 
       user: function() { 
        return item; 
       }, 
       products: function() { 
        //console.log($scope.selectedProducts); 
        return item; // get all available products 
       } 
      } 
     }); 

     modalInstance.result.then(function (selectedItems) { 
      //products = selectedItems; 
     }, function() { 

      $log.info('Modal dismissed at: ' + new Date()); 


     }); 

    }; 

のようなグローバル変数を変更したいです。

+0

名前付けに関する注記: '$ scope.questions'は、通常説明するグローバル変数ではありません。それは '$ scope'の単なるプロパティであり、それ自体は指令、コントローラなどに注入されます。グローバル変数は一般にグローバルスコープ上に存在する変数として定義されます。これはブラウザにとっては 'window'オブジェクトです。 –

答えて

0

$ scope.questions.push( "asdsd");を使用すると更新されます。問題は、console.logが最初の実行時に一度しかコールされないため、コンソールに表示されないということです。したがって、値の変更を見なければなりません。

$scope.$watch(function ($scope) { 
       return $scope.questions; 
      }, function(newValue){ 
       console.log(newValue); 
      }, true); 
関連する問題