Angular $ routeProvider和Controller As Syntax

问题描述 投票:5回答:1

任何人都可以告诉我是否有效使用$routeProviderController as syntax?我有问题从<h1>{{kickController.foo}}</h1>所在的控制器访问this.foo

angular.module('ucp.kick', ['ngRoute']).config(function($routeProvider, APP_BASE_URL) {
  return $routeProvider.when(APP_BASE_URL + 'kicks', {
    reloadOnSearch: false,
    navitem: true,
    name: 'Kicks',
    templateUrl: 'kick/partials/kick.html',
    controller: 'kick as KickController'
  });
});
angularjs routing angularjs-scope angularjs-routing ngroute
1个回答
10
投票

您无法在controller$routeProvider.when选项中添加controllerAs语法。

您应该使用controllerAs选项,该选项是以字符串格式获取控制器的别名,而controller也接受将被视为角度控制器的字符串。

$routeProvider.when(APP_BASE_URL + 'kicks', {
    reloadOnSearch: false,
    navitem: true,
    name: 'Kicks',
    templateUrl: 'kick/partials/kick.html',
    controller: 'KickController'
    controllerAs: 'kick' //controller alias taken out from controller option
});

要么

controller: 'KickController as kick'

Doc Link

© www.soinside.com 2019 - 2024. All rights reserved.