KnockoutJS - associazione uniqueName
Questa associazione viene utilizzata per generare un nome univoco per un elemento DOM. Se l'elemento DOM non aveva un attributo name, questa associazione gliene fornisce uno e lo imposta su un valore di stringa univoco.
Non avrai bisogno di usarlo spesso. È utile solo in pochi rari casi, ad esempio:
jQuery Validation attualmente convaliderà solo gli elementi che hanno nomi. Per usarlo con un'interfaccia utente Knockout, a volte è necessario applicare l'associazione uniqueName per evitare di confondere jQuery Validation.
IE 6 non consente il controllo dei pulsanti di opzione se non hanno un attributo name. KO utilizzerà internamente uniqueName su quegli elementi per assicurarsi che possano essere controllati.
Sintassi
uniqueName: <binding-value>
Parametri
Il parametro qui sarà il valore booleano vero o falso o un'espressione che restituisce un valore simile a quello booleano. Un nome univoco viene generato da KO per l'elemento per il quale questo parametro è impostato su un valore true o true .
Esempio
Diamo un'occhiata al seguente esempio che dimostra l'uso dell'associazione uniqueName.
<!DOCTYPE html>
<head>
<title>KnockoutJS UniqueName Binding</title>
<script src = "https://ajax.aspnetcdn.com/ajax/knockout/knockout-3.3.0.js"
type = "text/javascript"></script>
</head>
<body>
<p>Enter your pet's name:
<input data-bind = "value: someValue, uniqueName: true" />
</p>
<p>
<button data-bind = "click: showMessage">Click here to read message </button>
</p>
<script type = "text/javascript">
function ViewModel() {
this.someValue = ko.observable();
this.showMessage = function() {
alert(" Nice Name"+ "\nSee rendered markup to view unique name generated!!!");
}
};
var vm = new ViewModel();
ko.applyBindings(vm);
</script>
</body>
</html>
Produzione
Eseguiamo i seguenti passaggi per vedere come funziona il codice sopra:
Salva il codice sopra in formato uniquename-bind.htm file.
Apri questo file HTML in un browser.
Premere F12 e osservare il markup renderizzato. Il nome univoco è generato da KO.