angular material: md-select 不能使用 "controller as" 语法?

angular material: md-select not working with "controller as" syntax?

我所做的只是修改他们的官方异步搜索演示(它适合我的用例)以利用 "controller as",结果出现奇怪的行为。 Codepen is here。我错过了什么吗?

这是上面的相关代码 link:

JS:

angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])
.controller('SelectAsyncController', function($timeout, $scope) {
  var vm = this;

  vm.user = null;
  vm.users = null;

  vm.loadUsers = function() {
    return $timeout(function() {
      vm.users =  vm.users  || [
        { id: 1, name: 'Scooby Doo' },
        { id: 2, name: 'Shaggy Rodgers' },
        { id: 3, name: 'Fred Jones' }
      ];
    }, 650);
  };
});

标记:

<div ng-controller="SelectAsyncController as vm" layout="column" ng-app="MyApp">
    <md-select placeholder="Assign to user" 
               ng-model="vm.user" 
               md-on-open="vm.loadUsers()">
      <md-option ng-value="vm.user" 
                 ng-repeat="user in vm.users">{{user.name}}</md-option>
    </md-select>
    <p>Assigned to: {{ vm.user ? vm.user.name : 'No one yet' }}</p>
</div>

您应该将 ng-value 更改为 "user"。

<md-option ng-value="user" ng-repeat="user in vm.users">{{user.name}}</md-option>

这是工作 Codepen