AngularJS中的主要细节

时间:2017-10-27 05:26:02

标签: angularjs rest master-detail

我尝试编写一个从REST API获取列表的小应用程序,并显示每个所选项目的详细信息。我正在寻找一个关于如何将所选id从列表视图传输到详细视图的简单教程,但是无法弄清楚。我假设我需要使用Master-detail技术。

以下是代码:

列表视图:

<ul>
    <li ng-repeat="gadgetDetails in gadgettDetails">

        <div>
                <a href="#/gadgets/{{gadgetDetails.id}}"><p>{{gadgetDetails.type}}</p></a>
                <p>{{gadgetDetails.manufacturer}}</p>
        </div>  
        <hr />
    </li>
</ul>

详情视图

<div>
     <p><a href="#/gadgetLists">Go back to Gadgets list</a></p>

      <p>{{gadgetDetails[2].type}}</p>
      <p>{{gadgetDetails[2].color}}</p>
      <p>{{gadgetDetails[2].manufcturer}}</p>
</div>

所以我只提出了问题2(我从REST API获得的JSON列表中的第二个对象,但它实际上应该是gadgetDetails[i].type 但我无法弄清楚如何获得列表中每个项目的索引(例如i)

这是控制器:

GadgetListCtrl.controller('gdgtList', function($scope, $http, $filter) {
$http.get('https:.../gadgets.json').
    then(function(response) {
        $scope.gadgettDetails = response.data;
    });

});

所以问题是如何通过id为每个项目显示其详细信息 感谢

1 个答案:

答案 0 :(得分:0)

你可以通过angular ui router参数

来实现这个目标

下面是虚拟代码

.config

中的

$stateProvider
    .state('gadgets', {
        url: "/gadgets/:id",
        templateUrl: 'gadgetDetail.html',
        controller: 'gadgetController',
        controllerAs: 'vm',
        params: {
         id: null
        }
    });

并在控制器文件中,您可以访问以下ID

  .controller('GadgetController', function($state, $stateParams) {

    var selectedID = $state.params.id;
    //alternatively you can get using $stateParams service
    // $stateParams.id 

  if(selectedID) {
   // get detail of gadget
  }
});