quel est la différence entre ng et ng-valeur
Que j'ai compris ng-modèle définit la valeur de cet élément particulier dans lequel le modèle est affecté. étant donné que la valeur ng est-elle différente du modèle ng?
4 réponses
Cela fonctionne en conjonction avec ng-model; pour les radios et les sélections, c'est la valeur qui est définie sur ng-model lorsque cet élément est sélectionné. Utilisez-le comme une alternative à l'attribut 'value' de l'élément, qui stockera toujours une valeur de chaîne dans le modèle ng associé.
Dans le contexte des boutons radio, il vous permet d'utiliser des valeurs non-chaîne. Par exemple, si vous avez les boutons radio 'Oui' et 'Non' (ou équivalent) avec les valeurs "true" et "false" - si vous utilisez la "valeur", les valeurs stocké dans votre modèle ng deviendra des chaînes. Si vous utilisez 'ng-value', ils resteront booléens.
Dans le contexte d'un élément select, notez cependant que la valeur ng sera toujours traitée comme une chaîne. Pour définir des valeurs non-chaîne pour une sélection, utilisez ngOptions.
Description Simple
Ng-modèle
- est utilisé pour la liaison bidirectionnelle de variable qui peut être disponible sur scope ainsi que sur html.
- qui a
$modelValue
(valeur réside dans la portée réelle) &$viewValue
(valeur affichée sur l'affichage). - Si vous avez mentionné sur le formulaire avec l'attribut name, angular crée en interne des attributs de validation comme $error, $valid, $invalid, etc.
Par exemple.
<input type="text/checkbox/radio/number/tel/email/url" ng-model="test"/>
Valeur Ng
- Est utilisé pour attribuer une valeur à chacun de
ng-model
commeinput
,select
&textarea
(la même chose peut être fait en utilisantng-init
) -
ng-value
fournit une bonne liaison Si vous définissez la valeurng-model
via ajax tout en écrivant l'attributvalue
ne le supporte pas - essentiellement destiné à utiliser pour
radio
&option
balise lors de la création dynamique des optionsselect
. - Il ne peut avoir que
string
la valeur, il ne supporte pas l'objet valeur.
HTML
<input
[ng-value="string"]>
...
</input>
OU
<select ng-model="selected">
<option ng-value="option.value" ng-repeat="option in options">
{{option.name}}
</option>
</select>
...
Une bonne utilisation pour ng-value
dans les champs input
est si vous voulez lier à une variable, mais en fonction de la valeur d'une autre variable. Exemple:
<h1>The code is {{model.code}}.</h1>
<p>Set the new code: <input type="text" ng-bind="model.code" /></p>
Lorsque l'utilisateur tape dans le input
, la valeur du titre sera mis à jour. Si vous ne voulez pas cela, vous pouvez modifier pour:
<input type="text" ng-value="model.code" ng-bind="model.theNewCode" />
theNewCode
sera mis à jour, mais code
restera intact.
Selon le https://docs.angularjs.org/api/ng/directive/ngValue, ngValue prend une "expression angulaire, dont la valeur sera liée à l'attribut value de l'élément d'entrée".
Ainsi, lorsque vous utilisez ng-valeur="dur", il est interprété comme une expression et la valeur est liée à $champ d'application.dur (ce qui est probablement indéfini). ngValue est utile pour évaluer les expressions - il n'a aucun avantage sur la valeur pour définir des valeurs codées en dur. Pourtant, si vous voulez coder en dur une valeur avec ngValue, vous devez l'entourer de":
Ng-value="'dur'"
Ng-model est destiné à être placé dans des éléments de formulaire et a une liaison de données bidirectionnelle ($scope - > view et view - > $ scope) par exemple <input ng-model="val"/>.
Ou vous pouvez dire que la directive ng-model lie la valeur des contrôles HTML (input, select, textarea) aux données de l'application.