Я работаю с новым угловым, и, как мне сказали, я избавляюсь от объекта $ scope.
Поэтому, когда я ссылаюсь на свой контроллер со страницы html, я ссылаюсь на него с помощью псевдонима:
<div ng-controller="MyController as ctrl">
<p>{{ ctrl.Hello }}</p>
</div>
Мой вопрос: когда я использую маршруты, и я объявляю один из моих маршрутов:
$stateProvider.state('myPage', {
url: "/myPage",
templateUrl: "./views/myPage.html",
controller: 'MyController'
})
Каким образом можно ссылаться на контроллер в таком случае без использования $ scope?
ui-router поддерживает controllerAs
с собственностью.
$stateProvider.state('myPage', {
url: "/myPage",
templateUrl: "./views/myPage.html",
controller: 'MyController',
controllerAs: 'ctrl'
})
Дополнительная информация https://github.com/angular-ui/ui-router/wiki
controller: 'MyController as ctrl'
Используйте ваш контроллер с синтаксисом "контроллер как" и переменной vm:
function MyController() {
// VM represents the Views Model (aka ViewModel)
var vm = this;
// exports
vm.item = "Test item";
return vm;
}
this
локальной переменной. Я предпочел имя переменной как vm, вы можете выбрать любое имя по вашему выбору.vm
.view
укажите псевдоним контроллера с помощью контроллера в качестве синтаксиса.
controller: 'MyController as myCtrl'