angular.js - angluarjs controller封装问题
为情所困
为情所困 2017-05-15 17:06:48
0
1
485

是这样的 楼主目前正在在学习angularjs 遇到了一个困难
在主页 index.html 有一个模块 ng-app="Demo",楼主用这个模块依赖了ui-router进行路由。
子页面代码会被加载到 index.html 页面中。

现在问题来了,我将子页面封装成了一个用户组件一样的东西。中间有它自己的model,service,controller。
model跟service还好说,问题是controller怎么使用主页的 ng-app="Demo" ,并且在使用的时候还需要将它对应的service以及model注入进来,注意是在路由子页面的时候,将controller绑定到主页面的 Demo 模块中,并且需要添加新的依赖 model,service

这个是主页面的js文件:

    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"
                                ]);
                            }]
                        }
                    })
            }
        ])

这个是子页面的controller:

(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)

我这样弄之后,controller里面的代码根本不会加载 这是怎么回事

为情所困
为情所困

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