angular.js - angluarjs controller封装问题

浏览:37日期:2023-01-01

问题描述

是这样的 楼主目前正在在学习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里面的代码根本不会加载 这是怎么回事

问题解答

回答1:

angular.module方法在不传入第二个参数的时候才是获取已注册的模块,否则就是创建新的模块

相关文章: