来自ng-repeat的Ng-init

时间:2015-09-14 19:56:09

标签: javascript angularjs ionic angularjs-ng-options angularjs-ng-init

我有一个产品列表,你可以看到JSON:

var panier =
    {
        "Client": "Ben",
        "Date":"",
        "Produits": [
            {
                "Id": "188", 
                "Name":"Name1",
                "Qte": "5", 
                "Variante": 
                "20 Pcs",
                "Prix" :"149.00"
            },
            {
                "Id": "231",
                "Name":"Name2",
                "Qte": "2", 
                "Variante": "7 encas de 35g",
                "Prix" :"109.00"
            },
            {
                "Id": "232", 
                "Name":"Name3",
                "Qte": "7", 
                "Variante": "10 pieces",
                "Prix" :"99.00"
            }
        ]
    };

我用离子列表来检索产品,一切正常。

我在列表项目内部(例如第一项)Qte = {{product.Qte}}它给了我Qte = 5

但是,当我想将数量放在选择上时,它不适用于ng-init:

<select 
    ng-model="selectedQte"
    ng-init="selectedQte = {{product.Qte}}"
    ng-options="selectedQte for selectedQte in range('10')"
    ng-change="product.Qte = selectedQte">
</select>

我试过了:

ng-init="selectedQte = product.Qte"

和:

ng-init="selectedQte = {{product.Qte}}"

但没有任何反应。我试过的时候:

ng-init="selectedQte = 3"

我的3次选择中有3

但我希望第一个5,第二个2和第三个7

需要任何帮助,谢谢!

2 个答案:

答案 0 :(得分:3)

问题是,JSON中dataType的{​​{1}}是Qte&amp;为范围创建的stringarray的序列。您需要将来自响应的JSON转换为number而不是number才能实现。您可以直接将string绑定到Product.Qte

<强>标记

ng-model

答案 1 :(得分:1)

这应该有效:

<select ng-model="selectedQte" ng-init="selectedQte = panier.Produits[0]"
ng-options="item.Name for item in panier.Produits">
</select>

您的ng-model包含所选值,但ng-option应遍历您的列表。在你的html中,你在两种情况下使用selectedQte。