Angularjs Master Detail with $stateProvider 不起作用

Angularjs Master Detail with $stateProvider does not work

我已经尝试了以下方面的帮助: UI Router load detail page from a list page

我遇到了一个问题,因为我实现的代码总体上是不同的。

我这里有 config.js:

.state('app.projects', {
        url: "/projects",
        templateUrl: "views/projects.html",
        data: { pageTitle: 'Projects' },
        controller: 'ProjectCtrl'
    })
.state('app.project_detail', {
        url: "/project_detail",
        view: {
            'project_detail':{
            templateUrl: 'views/project_detail.html',
            controller: 'ProjectDetailCtrl'
            }
        },
        data: { pageTitle: 'Project detail' }
    })

我有项目 (MASTER) html:

<td class="project-actions">
    <a ui-sref="app.project_detail/({project_id:1})" class="btn btn-white btn-sm"><i class="fa fa-folder"></i> View </a>
</td>

和 project_detail(详细信息)

<h2> {{project_data.project_id}}</h2>

最后 controller.js:

function ProjectCtrl($scope, $http, $timeout, $state, $stateParams) {

$http.get('../crud/projects_read.php').then(function(response){
    $scope.projects = response.data;
});

};

function ProjectDetailCtrl($scope, $http, $timeout, $state, $stateParams) {

    $scope.project_data = $scope.projects[$stateParams.project_id]

};

我想我已经设置好了,但是 UI-SREF 不起作用,我认为数据似乎不是从 controller.js 文件中的项目 --> 项目详细信息传递的。

有人能帮帮我吗?我被困住了,几乎一整天都在尝试不同的例子(甚至数不过来!)。

提前致谢!

像这样制作你的 ui-sref:

<a ui-sref="app.project_detail({project_id: 1})">

你有两处错误

  1. 按照@Gaurav

    所述更改您的ui-sref
    <a ui-sref="app.project_detail({project_id: 1})">
    
  2. 你不是在告诉你的状态会有一个参数:project_id

     .state('app.project_detail', {
            url: "/project_detail/:project_id",
            view: {
                'project_detail':{
                templateUrl: 'views/project_detail.html',
                controller: 'ProjectDetailCtrl'
                }
            },
            data: { pageTitle: 'Project detail' }
        })'