【发布时间】:2017-05-18 00:30:35
【问题描述】:
如果我有两个列表项
<li><a href="foo.html"></a></li>
<li><a href="bar.html"></a></li>
并基于单击哪个,使用 ng-include 在当前页面上的 div 中呈现?
<div ng-controller="main-panel" class="main-panel">
<ng-include src="'clickedElement'"></ng-include>
</div>
我很困惑如何使用路由在 div 内渲染 html,这取决于您单击哪个元素?
main.config(function ($routeProvider, $locationProvider, $httpProvider) {
$routeProvider
.when('/', {
controller: 'side-menu'
})
.when('/signup', {
templateUrl : 'signup.html',
controller: 'main-panel'
});
$locationProvider.html5Mode(true);
});
HTML
<li ng-repeat="oucampus in secondaryLinks.oucampus">
<a ng-href='{{oucampus.href}}'> {{oucampus.title}} </a>
</li>
<div class="main-panel" ng-view></div>
控制器功能
oucampus: [
{title: "Requests", href:"signup.html"},
],
【问题讨论】:
-
在您的
ng-repeat中尝试将href值更改为"#/signup"或"/signup" -
我进一步更新了plunker 以显示带有标识符
main-panel的控制器的示例signup.html。 -
一些带有 plunker 的东西可能会导致问题。 1)您没有在您的角度应用程序
main中注册ngRoute,这是路由工作所必需的。 2) 您没有在main.config()中指定任何路由 3) ngRoute 没有被加载。这是一个分叉的 plunker,"/pending"路由正在工作以作为示例。希望这会有所帮助!另请注意,HTML5 模式通常需要额外配置,尤其是在 Plunker 等工具中。 -
抱歉,我忘了冻结我的更改。您所说的所有内容都已添加。
-
这里是一个使用HTML5模式plunker的例子。 /pending 路由是唯一配置为工作的路由,但您可以使用它来构建路由的其余部分。
标签: angularjs