是这样的 楼主目前正在在学习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里面的代码根本不会加载 这是怎么回事
滿天的星座2017-05-15 17:08:48
The angular.module method only obtains the registered module when the second parameter is not passed in, otherwise it creates a new module