angulaire.js - problème d'encapsulation du contrôleur angluarjs
为情所困
为情所困 2017-05-15 17:06:48
0
1
508

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.

为情所困
为情所困

répondre à tous(1)
滿天的星座

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal