关于javascript:ng-repeat over ng-options共享同一模型

ng-repeat over ng-options that share the same ng-model

本问题已经有最佳答案,请猛点这里访问。

我知道这很奇怪。如果不可能的话,我将转换API数据。

但是,我需要多个下拉列表来共享同一个NG模型。

问题:

  • ng-model具有相同的var名称时,为什么它是唯一的?
  • 如何使每个下拉共享一个EDOCX1[1]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <p>
    {{selectedSize}}
    </p>
     <input
        ng-checked="selected"
        type="radio"
        name="colors"
        ng-model="selected.pdw.color"
        ng-value="key"/>

    <select ng-model="selectedSize"
            ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
            ng-change="selected.product.set.size(key,val, selectedSize);">
            <option value="">Please select a size</option>
    </select>

  • ng-repeat创建了一个子作用域,因此selectedSize是该子作用域上的属性,因此每个子作用域都有自己的选择。阅读这个与子范围继承以及它如何应用于各种指令相关的答案。如果要共享同一个ng-model,只需在控制器上定义一个范围属性。EX:

    1
     $scope.size = {};

    并将您的ng模型设置为ng-model="size.selectedSize"

    1
    2
    3
    4
    5
    <select ng-model="size.selectedSize"
            ng-options="choice as choice for (idx, choice) in val.sizes.split(',')"
            ng-change="selected.product.set.size(key,val, size.selectedSize);">
            <option value="">Please select a size</option>
    </select>

    您不需要通过size.selected,它也可以在您的控制器中使用,但是通过它不会造成任何伤害。