ui-sref没有将href添加到渲染的html,并且没有可点击

时间:2016-08-16 21:37:11

标签: angularjs angular-ui-router

控制台没有错误。

我的代码很简单,如下所示 Home.html中     <h2>Select the car for seeing details</h2> <div ui-view=""></div>              angular.module('cardealer',['ngRoute','ui.router'])         .controller('carcntrlr',函数($ scope,$ route,$ routeParams,$ location){             $ scope.cars = [{id:1,name:'Honda'},{id:2,name:'Hyundai'},{id:3,name:'Toyota'}];

    })
    .controller('cardetails',function($scope,$routeParams){

        $scope.id = $routeParams.id;
        $scope.name = $routeParams.name;
    })
    .config(function ($stateProvider, $routeProvider, $urlRouterProvider) {
        $urlRouterProvider.otherwise("/route")
        $stateProvider.state('cars', {
            url: "/route",
            templateUrl:'cars.html',
            controller: 'carcntrlr'
        })
          .state("cardetails", {
            url: '/car/:carId/:carName',
            templateUrl:'cardetails.html',
                controller:function($scope,$stateParams){

                    $scope.id = $stateParams.carId;
                    $scope.name = $stateParams.carName;
                }

        })
    })
    ;

</script>

Cars.html

<div>


<ul ng-repeat="car in cars">
    <li>
        <a ui-sref="carDetails({carId: '{{car.id}}',carName:'{{car.name}}'})">{{car.name}}</a>
    </li>
</ul>
<hr/>
<div ui-view></div>

2 个答案:

答案 0 :(得分:1)

在为ui-sref州参数提供值时,无需使用{{}}&amp; '(单个qoute)。就像你在这里传递范围变量的值一样。

接下来就是状态名carDetails中的拼写错误应为cardetails

ui-sref="cardetails({carId: car.id, carName: car.name})"

答案 1 :(得分:0)

首先是@Pankaj Parkar所指出的,所以你应该写

ui-sref="carDetails({carId: car.id, carName: car.name})"

然后在状态中,您已将州名称定义为carDetails(注意大写D)但是 在你的cars.html页面中,你将状态称为cardetails(注意小d)

carDetails.html页面的名称相同