C'est comme ça. L'affiche apprend actuellement Angularjs et a rencontré une difficulté
Il y a un module ng-app="Demo" sur la page d'accueil index.html L'affiche utilise ce module pour s'appuyer sur ui-router. pour le routage.
Le code de la sous-page sera chargé dans la page index.html.
Maintenant, voici le problème, j'ai encapsulé la sous-page dans quelque chose comme un composant utilisateur. Au milieu, il possède son propre modèle, service et contrôleur.
Le modèle et le service sont faciles à parler. Le problème est de savoir comment le contrôleur utilise ng-app="Demo" sur la page d'accueil, et lors de son utilisation, il doit également injecter son service et son modèle correspondants. sous-pages, liez le contrôleur au module Démo de la page principale et devez ajouter un nouveau modèle de dépendances, un service
Voici le fichier js de la page principale :
angular
.module("Demo", [
"ui.router",
"oc.lazyLoad"
])
.config([
"$stateProvider",
"$urlRouterProvider",
function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/main/login");
$stateProvider.state("main", {
url: "/main",
abstract: true,
template: '<ui-view ></ui-view>'
})
.state("main.login", {
url: '/login',
templateUrl: 'scripts/templateuser/view/login.html',
resolve: {
deps: ["$ocLazyLoad", function($ocLazyLoad) {
return $ocLazyLoad.load([
"./scripts/templateuser/controller/basic/login.js",
"./scripts/common/common.fun.js",
"./scripts/templateuser/model/basic/owner.js"
]);
}]
}
})
}
])
Voici le contrôleur de la sous-page :
(function(angular) {
"use strict"
angular
.module("Demo", [
"Task.Common",
"Task.TemplateModel"
])
.controller("Task.TemplateUser.Controller.Basic.Login", [
"$scope",
"Task.TemplateUser.Service.PostService",
"Task.TemplateUser.Model.Basic.Owner",
LoginController
]);
function LoginController($scope) {
console.log($scope.OwnerInfo.OwnerName);
var url = "";
var data = {};
var success = function() {};
var error = function() {};
var content = $scope.component.content;
$scope.getowner = function() {
EventPost.Post(url, data, success, error);
}
};
})(window.angular)
Après avoir fait cela, le code dans le contrôleur ne sera pas chargé du tout.
La méthode angulaire.module n'obtient le module enregistré que lorsque le deuxième paramètre n'est pas transmis, sinon elle crée un nouveau module