У меня есть некоторые проблемы с инициализацией глобальной переменной для использования во всех функциях mycontroller:
Вот что я сделал до сих пор:
JS:
$scope.init = function (table) {
alert("alert 1 : " + table);
$scope.tableName = table;
alert($scope.tableName);
};
tableName = $scope.tableName;
alert("alert 2 : " + tableName);
HTML:
<div ng-init="init('RIGHTTABLE')" ng-controller="DropdownCaptionCtrl">
У меня есть предупреждения в моем браузере с этим заказом:
alert 2: undefined
alert 1: RIGHTTABLE
У вас есть идея решить эту проблему?
Я хочу иметь оповещения в этом порядке:
alert 1: RIGHTTABLE
alert 2: RIGHTTABLE
На самом деле я хочу иметь глобальную переменную $scope.tableName
которая будет использоваться во всех моих функциях контроллеров, я хочу инициализировать ее при запуске страницы
спасибо
Ваша функция init вызывается после получения переменной как неопределенной, так как сначала загружается контроллер, что вы можете сделать
$scope.init = function (table) {
alert("alert 1 : " + table);
$scope.tableName = table;
alert($scope.tableName);
alert("alert 2 : " + $scope.tableName);
};
ОБНОВИТЬ:
Если вы хотите использовать переменную во всех контроллерах, то перейдите к Service
Другим вариантом является использование $ rootScope,
$scope.init = function (table) {
alert("alert 1 : " + table);
$rootScope.tableName = table;
alert($rootScope.tableName);
alert("alert 2 : " + $rootScope.tableName);
};
Тогда вы сможете получить доступ к любому контроллеру с помощью $rootScope.tableName
$scope.tableName
пригодной для использования во всех функциях контроллера