单击链接时,我如何定义导航到详细信息页面的路由
How do i define routing to navigate to details page when link clicked
我需要一些帮助来实现列表和详细信息页面。
我有一个motorList.html
页面,我将所有电机列为从服务器(数据库)检索到的hyperlink
。
motorList.html
<div>
<ul class="phones">
<li ng-repeat="motor in motors" >
<a href="#/motors/{{motor.Id}}">{{motor.Name}}
</li>
</ul>
</div>
我想当用户点击任何电机链接时,系统应该导航到motorDetails.html
页面,并显示点击/选择的电机的详细信息。
为此,我在app.js 中定义了如下路线
app.js
app.config(['$routeProvider',
function ($routeProvider) {
$routeProvider.
when('/motors', {
templateUrl: 'View/motorlist.html',
controller: 'motorController'
}).
when('/motors/:motorId', {
templateUrl: 'View/motordetail.html',
controller: 'motorDetailsController'
}).
otherwise({
redirectTo: '/motors'
});
}]);
motorDetails.html
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div>
<ul class="phones">
<li ng-repeat="motor in motors" class="thumbnail">
<p>{{motor.Name}} {{motor.Make}} {{motor.Model}} {{motor.Year}} {{motor.Kilometers}} {{motor.Price}} {{motor.Color}} {{motor.SellerType}}</p>
</li>
</ul>
</div>
</body>
</html>
motorDetailsController.js
var app = angular.module('myApp', ['ngSanitize', 'ui.select']);
app.controller('motorDetailsController', function ($scope, $routeParams, motorService) {
$scope.motors = null;
$scope.getMotorDetails = function (Id) {
motorService.getByMake(Id)
.success(function (motors) {
$scope.motors = motors;
})
.error(function (error) {
$scope.status = 'Unable to load motor data: ' + error.message;
});
}
});
问题:当我点击任何马达超链接时,它不会导航到motorDetails.html
页面,但url会更改,例如http://localhost:12270/View/motorList.html#/motors/161
。
我是AngularJs路线的新手,当然我在这里错过了一些东西,但不确定出了什么问题。
有人能给我指路吗。感谢
您应该在页面上添加ng-view
指令,该指令将通过观看URL
来显示从$routeProvider
加载的template
。您需要在身体的某个位置添加ng-view
指令。
此外,您还应纳入@Dvir
建议的更改。
标记
<body>
<div>
<ul class="phones">
<li ng-repeat="motor in motors" class="thumbnail">
<p>{{motor.Name}} {{motor.Make}} {{motor.Model}} {{motor.Year}} {{motor.Kilometers}} {{motor.Price}} {{motor.Color}} {{motor.SellerType}}</p>
</li>
</ul>
</div>
<div ng-view></div>
</body>
更新
理想情况下,motorList.html
中应该有ng-view
指令,它会被加载(但我将其视为所有css和js引用所在的index.html页面)
此外,您不需要包括html
、head
&partial
中的body
标记将被视为部分标记,因此删除body
、head
&html
标签,并通过只放置所需的模板使其变得简单。
motorDetails.html
<div>
<ul class="phones">
<li ng-repeat="motor in motors" class="thumbnail">
<p>{{motor.Name}} {{motor.Make}} {{motor.Model}} {{motor.Year}} {{motor.Kilometers}} {{motor.Price}} {{motor.Color}} {{motor.SellerType}}</p>
</li>
</ul>
</div>
这是因为href
是一个正则属性,它不是由angularJs计算的。要使该表达式成为您想要的链接,您必须使用ng-href
,这样angularJs将对该表达式求值,并将其分配给href
html attirbute。
你必须更改
href="#/motors/{{motor.Id}}"
至
ng-href="#/motors/{{motor.Id}}"
除了获取其id之外,您还必须在控制器中使用$routeParams
。例如:
var id = $routeParams.motorId
更新我错过了,但@Pankaj Parkar是对的。您必须使用ng-view
使routeProvider
将相关视图分配给右侧占位符。
如何使用ng-view
?你必须在你想让视图出现的地方制作一个元素。它可以是页面的一部分,也可以是整个页面。把元素放在你想放的地方,你就会明白。
例如:
<body>
<div id="nav">
</div>
<ng-view>
<!-- this is the place your html template will apear -->
</ng-view>
</body>
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何在完整日历中的当天点击时显示活动详细信息
- Magento目录价格折扣规则不适用于产品详细信息页面
- 获取本地时间的JS日期,日期对象中没有时区详细信息
- Json阵列的详细信息显示在三页的angularjs中
- 如何获取数组详细信息另一页
- 如何用java脚本从领英获取详细信息
- Javascript函数详细信息
- 如何创建multiselect来显示Django中每个选定项的详细信息
- jQuery:获取图像加载错误的详细信息
- 如何从重定向的支付处理器网站提取交易详细信息并保存到我的rails 4数据库
- JQuery/Javascript来获取给定URL的Http Header详细信息
- 使用javascript/Jquery获取HTML5文件的详细信息
- 在knocket js中显示json对象的详细信息
- 在单击父复选框的同时获取子复选框的详细信息
- Ionic:带有选项卡和侧菜单导航问题的主详细信息
- MVC3 :: 从详细信息视图导航表,而不是单击表中的详细信息链接
- 单击链接时,我如何定义导航到详细信息页面的路由
- Ajax将Json内容从列表页面导航到详细信息页面
- 如何使文本框自动完成结果选择直接导航到记录详细信息