2014-09-09 4 views
0

Возможно ли получить доступ к переменным $ scope и функциям из $ scope. $ Apply call?

Ниже приведен фиктивный пример, демонстрирующий мою точку зрения. Как показано, при запуске контроллера вызывается someFunctionWithaCallbackParam и его параметр используется как обратный вызов, когда функция завершается.

В пределах $scope.$apply представлены переменные и функции $ scope? Если нет, то как получить доступ к $ scope?

angular 
    .module('myController') 
    .controller('ExampleController', ['$scope', function($scope) { 

    $scope.data = []; 

    someFunctionWithaCallbackParam(function(myList) { 
     $scope.$apply(function() { 
      for (var i = 0; i < myList.length; i++) { 
       // Is $scope visible from here?? 
       $scope.addItem(myList[i]); 
      } 
     }); 
    } 
    $scope.addItem(item) { 
     // do stuff 
     $scope.data.push(item); 
    } 
    }]); 
+2

Да, так работают работы с закрытием JavaScript. –

+0

, пока вы определяете функцию, в которой доступен $ scope, вы классный. это означает, что вы не можете использовать $ scope, как если бы вы определили эту функцию в какой-то большой глобальной коллекции обработчиков, не используя возможности DI. – dandavis

ответ

0

Да. Однако, как наилучшая практика, вы должны назначать переменные и функции для области видимости, которую вы собираетесь использовать в представлении. Я пытаюсь разделить переменные и функции просмотра и контроллера.

+0

Хороший совет по назначению vars & func для области, которую можно использовать для просмотра. Теперь очевидно, что вы указываете это; но я этого не сделал. Спасибо. – whyceewhite

+0

@whyceewhite Нет проблем! – wbeange

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