来自 ng-repeat 的 ng-init
Ng-init from an ng-repeat
我有一个产品列表,你可以看到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"
}
]
};
我用 ionic 做了一个列表来检索产品,一切正常。
当我这样做时在列表项内部(例如第一个项目)Qte = {{product.Qte}}
它给了我 Qte = 5
但是当我想将数量放在 select 上时,它不适用于 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 select 上有一个 3
。
但我想要第一个 5
,第二个 2
,第三个 7
。
需要任何帮助,谢谢!
看起来问题出在 JSON 中的 Qte
的 dataType
是 string
并且为范围创建的 array
是序列number
。您需要将来自响应的 JSON 转换为 number
而不是 string
即可。您可以直接将 Product.Qte
绑定到您的 ng-model
.
标记
<select ng-model="product.Qte"
ng-options="selectedQte for selectedQte in range('10')">
</select>
这应该有效:
<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。
我有一个产品列表,你可以看到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"
}
]
};
我用 ionic 做了一个列表来检索产品,一切正常。
当我这样做时在列表项内部(例如第一个项目)Qte = {{product.Qte}}
它给了我 Qte = 5
但是当我想将数量放在 select 上时,它不适用于 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 select 上有一个 3
。
但我想要第一个 5
,第二个 2
,第三个 7
。
需要任何帮助,谢谢!
看起来问题出在 JSON 中的 Qte
的 dataType
是 string
并且为范围创建的 array
是序列number
。您需要将来自响应的 JSON 转换为 number
而不是 string
即可。您可以直接将 Product.Qte
绑定到您的 ng-model
.
标记
<select ng-model="product.Qte"
ng-options="selectedQte for selectedQte in range('10')">
</select>
这应该有效:
<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。