具有ControllerAs绑定的ui-router

时间:2015-04-01 13:37:51

标签: angularjs angular-ui-router

ui-router State:

$stateProvider
    .state('dashboard', {
        url: '/dashboard',
        templateUrl: 'app/dashboard/dashboard.html',
        controller: 'DashboardController as vm'
    });

在DashboardController中我有:

var vm = this;
vm.title = 'Dashboard';

在dashboard.html模板中:

{{vm.title}}

为什么结果显示“{{vm.title}}”而不是绑定到控制器中的值?

2 个答案:

答案 0 :(得分:23)

配置状态时有一个控制器设置。

$stateProvider
    .state('dashboard', {
        url: '/dashboard',
        templateUrl: 'app/dashboard/dashboard.html',
        controller: 'DashboardController',
        controllerAs: 'vm'
    });

https://github.com/angular-ui/ui-router/wiki

答案 1 :(得分:1)

controller function中,您必须在功能结束时return this;

var vm = this;
vm.title = 'Dashboard';
// 
return vm;

如果我们使用 $ scope 而不是vm = this;

$scope.title = 'Dashboard';
// 
return $scope;

祝你好运。