У меня есть функция, как определено ниже, здесь $scope.questions
является глобальной переменной. Я хочу изменить глобальную переменную, как $scope.questions.push("asdsd");
$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());
});
};
Я хочу утешить обновленное значение глобальной переменной вне функции.
Вы обновляете его, когда используете $ scope.questions.push("asdsd") ;. Проблема в том, что вы не видите ее на консоли, потому что ваш console.log вызывается только один раз при первом выполнении. Поэтому вам нужно следить за изменением ценности для этого:
$scope.$watch(function ($scope) {
return $scope.questions;
}, function(newValue){
console.log(newValue);
}, true);
$scope.questions
не является глобальной переменной, как это обычно описывается. Это просто свойство в$scope
, которое само вводится в директиву, контроллер, что угодно. Глобальные переменные обычно определяются как переменные, которые существуют в глобальной области видимости, которая для браузеров является объектомwindow
.