Angular Material md-select不显示所选项目(绑定问题)

时间:2017-05-29 13:40:28

标签: javascript html angularjs angularjs-material

当我选择一个项目时,它不会绑定。我究竟做错了什么?

HTML代码:

<md-input-container data-ng-init="LoadListOfThings()">
  <label>Things</label>
  <md-select ng-model="object.Item" required name="item" >
      <md-option ng-value="item" ng-repeat="item in itemList track by item.Id">
        {{ item.Name }}
      </md-option>
  </md-select>
</md-input-container>

JS:

$scope.LoadListOfThings= function () {
    $http.get('api/ControllerBla/GetListOfThings').then(function (response) {
        $scope.itemList = response.data;
    }, function (ex) {
        alert(ex);
    });
};

3 个答案:

答案 0 :(得分:0)

而不是track by item.Id中的ng-repeat使用ng-model-options 示例:

<md-input-container data-ng-init="LoadListOfThings()">
 <label>Things</label>
 <md-select ng-model="object.Item" ng-model-options="{trackBy: '$value.id'}" required name="item" >
  <md-option ng-value="item" ng-repeat="item in itemList">
    {{ item.Name }}
  </md-option>
 </md-select>
</md-input-container>

希望这会有所帮助!!!

答案 1 :(得分:0)

我意识到我做错了什么!

我的ng-model是一个复杂对象“$ scope.Empresa.NomeFantasia”的属性,当我为一个简单的变量“$ scope.NomeFantasia”更改它时,它可以工作。

就像那样:

$scope.Empresa = {}; $scope.Empresa.NomeFantasia = {};

但它只适用于:

$scope.NomeFantasia = {};

我不知道为什么它不能用于复杂的对象。我想我已经初步确定了一切。

答案 2 :(得分:0)

ng-model-options =“ {trackBy:'$ value.region.id'}”将解决问题

例如:-