2013-10-15 4 views
0

У меня есть контроллер, который я зарегистрировал в своем модуле. Однако я хотел бы получить доступ к $ scope вне Angular, чтобы я мог изменить модель вокруг. Например, я хотел бы сделать следующее:Как я могу манипулировать моделью вне контроллера Angularjs?

var sentboxCtrl = function ($scope){ 

    $scope.sent = Sent; 
    $scope.deleteIcon = deleteIconSource; 
    $scope.flagIcon = flagIconSource; 
    $scope.attachmentIcon = attachmentIconSource; 

    for(var i = 0; i < $scope.sent.length ; i ++) 
    { 
     $scope.sent[i]['checked'] = false; 
    } 

    $scope.delete = function(element) 
    { 
     for(var i = 0; i < $scope.sent.length; i ++) 
     { 
      if($scope.sent[i].id == element.id) 
      { 
       $scope.sent.splice(i,1); 
      } 
     } 

    } 

    $scope.deleteChecked = function() 
    { 
     for(var i = 0; i < $scope.sent.length; i++) 
     { 
      if($scope.sent[i].checked) 
      { 
       $scope.sent.splice(i,1); 

       // We must account for sent.length changing 
       // after splicing so we need to decrement to 
       // account for that. 
       i --; 
      } 
     } 
    } 

    $scope.getModel = function() 
    { 
     return $scope; 
    } 

}; 

Где я использую sentboxCtrl.getModel вернуть область, а затем я могу манипулировать protperties из сферы вне обычного контекста.

Как это сделать?

ответ

0

Вы можете определить объект вне контекста углового, а затем внутри вашей функции контроллера, присвоить ему значение $ охвата:

var controllerScope = null; 
var sentboxCtrl = function ($scope){ 
    controllerScope = $scope; 
    ... 
} 

Теперь у вас есть доступ ко всем свойствам $ СФЕРА объекта ,

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