2014-09-04 2 views
2

Я пытаюсь выяснить способы, чтобы позволить $scope доступной для доступа из моих методов прототипа:

$scope Отправка в качестве параметра:

var myController = function($scope, Service) { 
    $scope.myMethod = function() { 
     this.myMethod($scope); 
    } 
} 
myController.prototype.myMethod = function($scope) { 
    // accessing the variables trhough the parameter. 
} 

Добавление ссылки на $scope в сам контроллер.

var myController = function($scope, Service) { 
    this.scope = $scope; 
    $scope.myMethod = function() { 
     this.myMethod(); 
    } 
} 
myController.prototype.myMethod = function() { 
    // accessing the variables through this.scope 
} 

Есть еще способы или обычаи или лучше подходит для доступа к $scope внутри функций прототипа?

+0

Javascript не является объектно-ориентированным языком, он является функциональным языком - пытается реплицировать объекты ООП, а наследование - не самый лучший способ для написания JS. Я не говорю, что вы не можете, но вам, скорее всего, будет проще реализовать решение с обратными вызовами и замыканиями проще, чем внедренная реализация ООП :-) – Joe

ответ

0

Вы не должны играть с такими контроллерами.

Вы уже определить свой метод - MyMethod внутри контроллера, как

$scope.myMethod = function(){...} 

и этот метод имеет доступ ко всем свойствам области видимости $.

Я не вижу смысла делать это? Не могли бы вы объяснить, зачем вам это нужно?

В противном случае вам придется передать $ scope в качестве параметра метода, который полностью разрушил бы модульную, основанную на ракурсе парадигму, основанную на углах.

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