Я использую AngularJS, чтобы сделать мобильное приложение с onsen и monaca
в моем контроллере Мне нужно использовать многие переменные, чтобы выполнить некоторую операцию, и мне не нужно отображать так согласно этому сообщению
$scope vs var in AngularJS
Я определил мой контроллер таким образом
Есть ли связь между переменными «var x» и scope
angular.module('myApp').controller('pdfPlanCtrl',['$scope',function($scope) {
var newHeight;
var newWidth;
function drawOldLines(pointBeginX, pointBeginY, pointEndX, pointEndY, color){
---- some code --------
console.log('drawOldLines scope id '+$scope.$id);
console.log('newWidth= '+newWidth);
}
}]);
в моем контроллере, как я уже говорил выше, я использовал это переменные для некоторых операций вычисления с помощью вызова функции drawOldLines
Я называю эту функцию с двух позиций , когда некоторые один сенсорный холст, и когда кто-то нажмите на кнопку
Когда некоторые один сенсорный холст я получить этот результат в журнале:
drawOldLines scope id 13
newWidth = 160
И когда я нажимаю на кнопка, которую я получаю
drawOldLines scope id 22
newWidth = undefined
Как я могу изменить значение newWidth в двух случаях? Или, может быть, помогите мне понять, что такое отношение между переменными переменных и областями?
ОБНОВЛЕНО: Я добавил функцию внутри моего контроллера
Я вижу некоторые путаница здесь - нет никакой причины, что 'newHeight'/'newWidth' должен быть доступен в' drawOldLines', поскольку они инкапсулированы в область функций вашего 'pdfPlanCtrl' (если в контроллере не определено' drawOldLines'). В основном, переменные локальны только для области JS, где они определены (а также вложенных областей). Однако, если вы должны были выставить значения как свойства Angular '$ scope', они были бы доступны для интерполяции в ваших шаблонах/представлениях. –
Вы правы, что функция является частью моего контроллера. –
Можете ли вы предоставить демо на скрипке, чтобы воспроизвести проблему. Похоже, что в вас есть ошибка в внешнем коде. – Romick