2016-03-04 3 views
0

я услышал в своем блоге, что простой способ подготовиться к Угловой 2.0, чтобы не использовать $ объема внутри контроллера, но использовать это вместо этого. Я обнаружил, что этот используется внутри функции, которая находится внутри контроллера не это, который должен быть $ прицелПравильный способ использовать это в контроллере

FAILS

var loginControllerId = 'loginCtrl'; 
app.controller(loginControllerId, ['$scope',function ($scope) { 
    this.login = {}; 
    function myFunc(){ 
     // FAILS - this.login is undefined I think because "this" is now referring to the myFunc function 
     this.login.message = "Some Message"; 
    } 
    this.login.successMessage = "Success"; // PASSES   
}); 

То, что я думаю, что это работа вокруг нужно создать var и установить это ($ scope). Может кто-нибудь сказать мне, если это хороший способ сделать это, или если есть другой метод для глобального использования контроллеров это?

ПРОПУСКА

var loginControllerId = 'loginCtrl'; 
app.controller(loginControllerId, ['$scope',function ($scope) { 
    var loginScope = this; 
    loginScope.login = {}; 
    function myFunc(){ 
     // PASSES 
     loginScope.login.message = "Some Message"; 
    } 
    loginScope.login.successMessage = "Success"; // PASSES   
}); 
+0

посмотреть на [контроллер в качестве метода] (https: // toddmotto. ком/рытье-в-контроллер-углам главного-а-синтаксис /) – Vanojx1

ответ

2

Его обычно используют что-то вроде var vm = this; в контроллере. См. Очень популярные styleguide by John Papa.