2

私はAngularに非常に慣れていないので、おそらく正しい「Angularの方法」で物事を行っていないことに言及することから始めます。

次の ng-repeat がいくつかのデータをループしています - 正しいデータが返されています。

<tr ng-repeat="attribute in attributeCategory.attributes">
    <td>
        {{attribute.name}}
    </td>
    <td>
        <input type="checkbox" ng-model="attr.enabled" ng-checked="{{attribute.parameters.enabled}}" ng-change="updateAttribute(attr, {{attribute.attribute_id}})"/>
    </td>
    <td>
        <input type="checkbox" ng-model="attr.normalise" ng-checked="{{attribute.parameters.normalise}}" ng-change="updateAttribute(attr, {{attribute.attribute_id}})"/>
    </td>                
    <td>
        <input type="checkbox" ng-model="attr.reverse" ng-checked="{{attribute.parameters.reverse}}" ng-change="updateAttribute(attr, {{attribute.attribute_id}})"/>
    </td>
    <td>
        <input type="text" ng-model="attr.min_threshold" ng-value="{{attribute.parameters.min_threshold}}" ng-change="updateAttribute(attr, {{attribute.attribute_id}})"/>                    
    </td>
    <td>
        <input type="text" ng-model="attr.max_threshold" ng-value="{{attribute.parameters.max_threshold}}" ng-change="updateAttribute(attr, {{attribute.attribute_id}})"/>                    
    </td>
<tr>

何らかの理由で、input="text" フィールドの ng-value が表示されません。フィールドのデータを updateAttribute() 関数に渡す必要があるため、渡す attr 変数にモデルをバインドしています。その後、この変数は API 呼び出しに使用されます。

モデルをテキスト フィールドから外すと、正しい値が得られますが、その値を取得して関数に渡す人が必要です。

私がこれを行うべき別の方法がある場合は、私に知らせてください:)

4

1 に答える 1

5

ng-value は、input[text] のメンションではありません

要素が選択されたときに、その要素の ngModel がバインドされた値に設定されるように、指定された式を input[select] または input[radio] の値にバインドします。

ドキュメントを見る

さらに、ng-change は式を想定しているため、{{}} を使用する必要はありません

代わりにこれを使用してください

ng-change="updateAttribute(attr,attribute)"
于 2014-06-24T11:35:41.767 に答える