如何将在 ng-repeat 中生成的 md-select(s) 绑定到不同的模型?

How to bind md-select(s) generated in an ng-repeat to different models?

我有以下代码:

<div layout="row" class="row" layout-xs="column" ng-repeat="dataset in datasetsEnv">
<div class="large-12 columns end" flex>
    <md-input-container layout="row" flex>
        <label>Environment setting for dataset {{dataset.datasetName}}:</label>
        <md-select ng-model="model.environments" style="min-width:410px;">
            <md-option ng-repeat="environment in dataset.environments" value="{{environment.DbEnvironmentId}}" ng-selected="isUserEnvSelected(environment)">{{environment.DisplayName}}</md-option>
        </md-select>
        <div></div>
    </md-input-container>
</div>

通过上面的代码,我生成了一些 mdSelect 指令,但我的问题是它们都绑定到一个模型 ng-model="model.environments"。有没有办法将每个生成的 mdSelect 绑定到一个我可以稍后参考的唯一模型?

你试过这样吗:

<div layout="row" class="row" layout-xs="column" ng-repeat="dataset in datasetsEnv">
  <div class="large-12 columns end" flex>
     <md-input-container layout="row" flex>
        <label>Environment setting for dataset {{dataset.datasetName}}:</label>
      <md-select ng-model="model.environments.dataset[datasetName]" style="min-width:410px;">
        <md-option ng-repeat="environment in dataset.environments" value="{{environment.DbEnvironmentId}}" ng-selected="isUserEnvSelected(environment)">{{environment.DisplayName}}</md-option>
        </md-select>
    <div></div>
</md-input-container>

这会将 属性 dataset 添加到 model.environments,其中 datasetarraydatasetname 等于模型值。

这样应该没问题。

<div layout="row" class="row" layout-xs="column" ng-repeat="dataset in datasetsEnv">
  <div class="large-12 columns end" flex>
     <md-input-container layout="row" flex>
        <label>Environment setting for dataset {{dataset.datasetName}}:</label>
      <md-select ng-model="dataset.selectedEnvironment" style="min-width:410px;">
        <md-option ng-repeat="environment in dataset.environments" value="{{environment.DbEnvironmentId}}" ng-selected="isUserEnvSelected(environment)">{{environment.DisplayName}}</md-option>
        </md-select>
    <div></div>
</md-input-container>