Przeglądam właśnie jakieś rzeczy na github i zobaczyłem wewnątrz controller.js, ktoś włożył następujące:Co znaczy "var vm = this;" w kontrolerach kątowych?
function ImageController ($scope, $timeout) {
var vm = this;
}
Co to służy?
Przeglądam właśnie jakieś rzeczy na github i zobaczyłem wewnątrz controller.js, ktoś włożył następujące:Co znaczy "var vm = this;" w kontrolerach kątowych?
function ImageController ($scope, $timeout) {
var vm = this;
}
Co to służy?
vm
w tym przypadku oznacza viewmodel
.
Jest to skrót, więc zamiast pisać this.someMethod()
można użyć vm.someMethod()
.
Bardzo często, gdy używasz składni Controller As
, więc nie powinieneś używać $scope
przez "wypadek".
Również słowo kluczowe this
może być kłopotliwe w użyciu, ponieważ może odnosić się do różnych rzeczy w zależności od miejsca, w którym jest używane.
dziękuję za odpowiedź –
Dlaczego ?: Pomaga uniknąć pokusy stosując metody $, zakres wewnątrz kontrolera kiedy może inaczej być lepiej ich unikać lub przenieść metodę do fabryki, i odwoływać się do nich ze sterownika.
można sprawdzić pełny John Papa Angular Style aby dowiedzieć się głębiej ...
dziękuję Sir za odpowiedź –
to tylko zamknięcie zakresu dla 'this', ale' this' jest łączem do kontrolera. twój 'ImageController' utworzony za pomocą' new ImageControllers (/ * $ zastrzyki * /) ' –