我对角度非常陌生,对于如何将模板或URL发送到ng视图,我有一个小问题。但是,我打算做的方式,我可能不得不在我的基本模板的ng-视图。
当我的模板库是这样的时候:
<body>
<div ng-view></div>
</body>我的JS看起来:
var app = angular.module('myApp',[])
.config(['$routeProvider', '$locationProvider', '$httpProvider', function($routeProvider, $locationProvider, $httpProvider) {
$routeProvider
.when('/home', {
templateUrl: '/contato'
})
(...)在只有一个ng视图的情况下,可以很好地加载ng视图中的URL,如果我需要加载一个以上的ng视图,情况如何?(例如: ng-view="area1“和ng-view="area2")
我在每个$routeProvider上都试过了,但都无法工作:
$routeProvider
.when('/home', {
area1: {templateUrl: '/path1'},
area2: {templateUrl: '/path2'}
})如何正确地分别设置每个ng视图?
感谢你的帮助!谢谢。
发布于 2013-10-09 03:33:38
不幸的是,正如您现在所知道的,页面上不能有多个ng视图。您应该看看来自AngularUI的UI-路由器,它做的正是您想要的(https://github.com/angular-ui/ui-router)。
他们的文档(https://github.com/angular-ui/ui-router#multiple--named-views)中的一个例子:
设置
var myApp = angular.module('myApp', ['ui.router']);html
<body>
<div ui-view="viewA"></div>
<div ui-view="viewB"></div>
<!-- Also a way to navigate -->
<a ui-sref="route1">Route 1</a>
<a ui-sref="route2">Route 2</a>
</body>模板1
<h1>State 1</h1>模板2
<h1>State 2</h1>js
myApp.config(function($stateProvider, $routeProvider) {
$stateProvider
.state('index', {
url: "",
views: {
"viewA": { template: "index.viewA" },
"viewB": { template: "index.viewB" }
}
})
.state('route1', {
url: "/route1",
views: {
"viewA": { templateUrl: "route1.viewA.html" },
"viewB": { templateUrl: "route1.viewB.html" }
}
})
.state('route2', {
url: "/route2",
views: {
"viewA": { templateUrl: "route2.viewA.html" },
"viewB": { templateUrl: "route2.viewB.html" }
}
});
});在这里,您可以在状态级别指定一个控制器,该控制器对两个视图都有效,或者在视图级别上有效,以便设置两个不同的控制器。
编辑:来自ui-路由器文档的实况演示(http://plnkr.co/edit/SDOcGS?p=preview)
发布于 2013-10-09 02:32:56
基本上你不能有两个ng视图。看一看this,所以问题:
你可以只看一次。 您可以通过几种方式更改其内容: ng-include、ng-switch或通过routeProvider映射不同的控制器和模板。
https://stackoverflow.com/questions/19261498
复制相似问题