2016-08-18 100 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);