MVC3 de Rasoir: appel de la fonction javascript de vue
Je suis nouveau dans MVC3 Rasoir et veulent montrer que temps de fonctionnement de vue (de l'index.cshtml).
J'utilise une fonction javascript et le mettre dans _Layout.cshtml donc toutes les autres "à la maison" points de vue peuvent l'utiliser (voir l'extrait de code suivant)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>
@ViewBag.Title
</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
</head>
<script type="text/javascript">
var uhr = new Date();
var minuten;
var stunden;
var sekunden;
var interval = 500;
function datum(id) {
uhr.setTime(uhr.getTime() + interval);
window.setTimeout(function () { datum(id) }, interval);
minuten = uhr.getMinutes();
stunden = uhr.getHours();
sekunden = uhr.getSeconds();
if (minuten < 10) { minuten = '0' + minuten; }
if (sekunden < 10) { sekunden = '0' + sekunden; }
if (stunden < 10) { stunden = '0' + stunden; }
document.getElementById(id).innerHTML = 'Jetzt ist: ' + stunden + ':' + minuten + ':' + sekunden;
}
</script>
Mes questions:
1. comment puis-je appeler cette fonction (par exemple, la donnée("uhr")) à partir de l'index.cshtml? Ma essayer (voir ci-après) ne fonctionne pas:
@section SideBar {
<p>
<ul>
<li><a href="Index.cshtml">Add Job</a></li>
<li><a href="About.cshtml">About</a></li>
</ul>
</p>
<p>
The time is: datum("uhr");
</p>
}
- Tout autre "mieux"?
- Est-il une bonne pratique? Je ne suis pas sûr si c'est correct de mettre de la fonction javascript dans _Layout.cshtml.
Thx à l'avance.
OriginalL'auteur MagB | 2011-09-16
Vous devez vous connecter pour publier un commentaire.
Vous devez déplacer le code de _Layout.cshtml dans une autre .fichier js et ajoutez une référence à elle.
Aussi, vous devez modifier l'index.cshtml code ce:
JS Fiddle Exemple
Les Scripts avec vos autres fichiers javascript ferait le plus de sens.
J'ai mis la nouvelle .js dans le dossier des scripts et ça fonctionne. Mais la deuxième est plus rapide que la véritable seconde. Comment faire pour contrôler cela? Merci à l'avance.
Il semble correct dans mon js fiddle exemple. Pas sûr de ce qui est mauvais pour vous.
Je suppose que la seconde est en quelque sorte compté deux fois. Dans votre js fiddle sur la section html il n'y a pas d'appel à la donnée("uhr"), tandis que dans votre extrait de l'index.cshtml il y a appel à elle. En js il est également appeler donnée("uhr"). est mon le deviner?
OriginalL'auteur Richard Dalton
La dernière ligne de la donnée de la fonction doit retourner le temps plutôt que de définir la innerHTML:
et votre code HTML peut ensuite être quelque chose comme ceci:
OriginalL'auteur soniiic