2017-02-15 2 views
0

Я использую 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 в двух случаях? Или, может быть, помогите мне понять, что такое отношение между переменными переменных и областями?

ОБНОВЛЕНО: Я добавил функцию внутри моего контроллера

+0

Я вижу некоторые путаница здесь - нет никакой причины, что 'newHeight'/'newWidth' должен быть доступен в' drawOldLines', поскольку они инкапсулированы в область функций вашего 'pdfPlanCtrl' (если в контроллере не определено' drawOldLines'). В основном, переменные локальны только для области JS, где они определены (а также вложенных областей). Однако, если вы должны были выставить значения как свойства Angular '$ scope', они были бы доступны для интерполяции в ваших шаблонах/представлениях. –

+0

Вы правы, что функция является частью моего контроллера. –

+0

Можете ли вы предоставить демо на скрипке, чтобы воспроизвести проблему. Похоже, что в вас есть ошибка в внешнем коде. – Romick

ответ

0

, когда я изменил код из

var newHeight; 
var newWidth; 

в

$rootScope.newHeight; 
$rootScope.newWidth; 

проблема решена

Смежные вопросы