两个控制器分别用于主应用和子应用,它们的url与angular ui-route相同
Two controllers for main-app and sub-app with same url with angular ui-route?
我有两个控制器'BaseController'和'SubController'为主应用程序和子应用程序定义。这两个控制器的配置指向空url。
下面是main-app的配置:-
angular.module("main-app").config(["$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) {
$stateProvider
.state('base', {
url: "",
views: {
"base": {
controller: 'BaseController'
}
}
});
}]);
这是子应用的配置:-
angular.module("sub-app").config(["$stateProvider", "$urlRouterProvider", function ($stateProvider, $urlRouterProvider) {
//$locationProvider.html5Mode(true);
$stateProvider
.state('sub', {
url: "",
views: {
"patients": {
templateUrl:"templates/scope/patients/patients_search.html",
controller: 'PatientsController'
}
},
});
}]);
主应用包含子应用。
我如何允许加载两个控制器与相同的空url
首先,同一个根视图的两个控制器没有任何意义。这是因为控制器需要一个视图上下文来执行操作,即在$scope
层次结构中的位置。
我认为你需要的是将你的控制器抽象成服务,这些服务可以注入到任何控制器中。例如,创建mainsrv
和subsrv
服务,然后在url: ''
上使用单个根控制器。然后你的根控制器定义看起来像这样:
angular.module('myapp', [])
.controller('AppCtrl', ['mainsrv', 'subsrv', function(mainsrv, subsrv){
// use mainsrv and subsrv services here
}]);
如果你真的想在根视图上加载多个控制器,就像上面那样创建一个根视图,但是在视图中使用ng-controller
来指定每个控制器的上下文。例如:
<div ng-controller="BaseController"></div>
<div ng-controller="PatientsController"></div>
相关文章:
- 如何创建背景图像列表'URL,并使用jQuery在单击函数时应用它们
- 使用应用程序状态js和视图在angular js url上传递两个参数
- 从使用react路由器的网络应用程序解析物理URL
- 将 MVC 3 应用程序部署到 URL 文件夹已损坏 JavaScript 和内容路径
- 谷歌应用脚本中的 UrlFetchApp.fetch 删除 url 参数
- 读取Angular应用程序中请求的url
- Facebook JavaScript SDK:读取应用程序URL
- 无法'共享'Firefox操作系统上Facebook和Twitter本地应用程序上的URL
- 在express应用程序中,请求参数两次附加到URL
- Facebook选项卡应用程序动态URL
- 使用skel框架构建的响应式网站只有在使用漂亮的URL时才能应用css
- 如果文档url不是特定url,则应用JS
- iOS在safari中打开URL,而不是在应用浏览器JS、HTML中打开Facebook
- 获取包含我的谷歌应用程序脚本的页面的url
- 如何应用youtube嵌入代码(如果字符串是youtube url)
- 为什么使用MEAN.js应用程序'URL以#开头
- 如何从struts2应用程序中的AJAX调用url调用servlet
- 是否可以提供一个特定的URL,供任何在网络应用程序中为页面添加书签的人使用
- 有没有任何方法可以在单页应用程序中记录url和哈希片段
- 如何使用chrome文件系统api从chrome应用程序中的url下载图像