Utilisation de ng-include dans undefined
Salut, je suis assez nouveau à l'angulaire et je viens de commencer ma première application.Voici ce que j'ai fait jusqu'à présent.C'est mon fichier index:
<body ng-app="codeArt">
<div ng-controller="loginCtrl">
<ng-include src="/App/scripts/login/login.html"></ng-include>
</div>
<!-------------- Angular Libs ---------------------->
<script src="/App/libs/angular/angular.js"></script>
<!--------------- Code Art Main Module -------------->
<script src="/App/scripts/codeArt.js"></script>
<!--------------- Code Art Login Module -------------->
<script src="/App/scripts/login/login.js"></script>
</body>
Le fichier d'index est stocké dans Views/Home/Index.cshtml. Ce sera le seul fichier stocké ici et elle est nécessaire parce que j'ai utilisé ASP.NET MVC.
J'ai défini mon module principal dans App/scripts/codeArt.js:
var codeArt = angular.module("codeArt", [
'codeArt.login'
]);
Ensuite, j'ai créé un second module qui contient les fonctionnalités liées à la connexion et d'inscription App/scripts/login/login.js
var login = angular.module('codeArt.login', [])
J'ai défini un contrôleur App/scripts/login/controllers/loginCtrl.js:
login.controller('loginCtrl', function($scope){
$scope.name = "Nistor Alexandru";
$scope.clicked = function(){
alert("I was clicked");
}
});
J'ai également défini la vue principale de la page de login App/scripts/login/login.html et il lookslike ce:
<section>
<div>{{name}}</div>
<button ng-click="clicked()">Clicked Alert!</button>
</section>
Comme il peut être vu à partir de mon index.cshtml fichier que j'ai essayé à l'aide de la ng-inclure à la charge de l'login.html fichier.Pour une raison quelconque, quand je lance l'application je ne peux que trouver un commentaire qui dit ng: non défini et le html n'est pas chargé.
Je wil être l'intégration de routage à un certain point, mais pour l'instant, je veux comprendre pourquoi cela ne fonctionne pas correctement?
J'ai aussi essayé ce chemin ../../App/scripts/login/login.html en il lok pour les fichiers relaive à l'index.cshtml fichier mais ce n'était pas le cas.
source d'informationauteur aleczandru
Vous devez vous connecter pour publier un commentaire.
La ng-inclure doivent être comme ceci, il vous manque un devis:
https://docs.angularjs.org/api/ng/directive/ngInclude
** Vieille Réponse **
Je vous suggère de placer votre des fichiers html statiques à l'intérieur de la
content
dossier ou créer certains de routage pour les retourner de dire un contrôleur. Il devrait travailler hors de la zone à l'intérieur du dossier de contenu:Ou vous pourriez envisager de créer un
TemplateController
et alors vous pourriez être en mesure de retourner la vue en se basant sur le nom du fichier que vous demandez (ne pas oublier de configurer une route):Cela suppose que vous avez un dossier à l'intérieur
/Views/Template/
avec le nomwhatever.cshtml
. Je pense que l'avantage à l'utilisation d'un contrôleur, c'est qu'ils sont mandatées par l'intermédiaire de votre contrôleur (vous pouvez modifier les structures de dossier plus tard et facilement mise à jour de la référence dans le contrôleur) et, éventuellement, de les transmettre certains de côté de serveur de données, mais cela dépend de vos exigences.ngInclude sont les liens relatifs, donc vous devez utiliser un chemin relatif : ../Content/[...]