2016-07-04 4 views
0

나는 angularjs가있는 온라인 상점을 만들고 있는데 details.html에 링크하는 방법을 알아 내고 특정 항목의 세부 정보를 표시하는 데 어려움을 겪고 있습니다. 현재 더보기 버튼을 클릭하면 URL이 항목의 이름을 표시합니다. 내가 볼 수있는 유일한 방법은 다음과 같은 링크를 만드는 것입니다 : #/details/: {{item.name}}. 내가 온라인으로 읽은 모든 것은 그것이 #/details/: 이름이어야한다고 말하지만 URL과 세부 정보에는 이름이 없습니다. 예를 들면 : Macbook Pro. 올바른 방법으로 홈 페이지로 다시 리디렉션합니다. 지금까지 내 코드가 있습니다.

는 app.js

var myApp = angular.module('app', ['ngRoute']); 
myApp.config(['$routeProvider','$locationProvider', function($routeProvider,$locationProvider) { 
     $routeProvider. 
     when('/home',{ 
      templateUrl: 'partials/home.html', 
      controller: "storeCtrl" 
     }). 
     when('/about',{ 
      templateUrl: 'partials/about.html', 
      controller: "storeCtrl" 
     }). 
     when('/computers',{ 
      templateUrl: 'partials/computers.html', 
      controller: "storeCtrl" 
     }). 
     when('/smartphones',{ 
      templateUrl: 'partials/smartphones.html', 
      controller: "storeCtrl" 
     }). 
     when('/tablets',{ 
      templateUrl: 'partials/tablets.html', 
      controller: "storeCtrl" 
     }). 
     when('/details/:{{item.name}}',{ 
      templateUrl: 'partials/details.html', 
      controller: "storeCtrl" 
     }). 

     otherwise({ 
      redirectTo: '/home'    
     }); 
    }]); 

myApp.controller('storeCtrl', ['$scope', '$http', '$routeParams', function($scope, $http, $routeParams) { 


$scope.homeHeading = 'All Products'; 
$scope.aboutHeading = 'About Us'; 
$scope.computersHeading = 'Computers'; 
$scope.smartphonesHeading = 'Smartphones'; 
$scope.tabletsHeading = 'Tablets'; 

$http.get('js/products.json').then(function(result) { 
    $scope.products = result.data; 


}); 

$scope.minusOne = function(index) { 
    $scope.products[index].dislikes += 1; 
}; 
$scope.plusOne = function(index) { 
    $scope.products[index].likes += 1; 
}; 





}]); 

computers.html

다시
<div> 
<h1>{{computersHeading}}</h1> 

<div class="product col-md-4" ng-repeat="item in products | filter:search | filter:'Laptop'"> 
<img ng-src="{{ item.cover }}" > 
<h3>{{ item.name }}</h3> 
<p class="price">{{ item.price }}</p> 
<p class=""> <b>Storage</b>: {{ item.specs.storage }}</p> 
<p> <b>Memory</b>: {{ item.specs.memory }}</p> 

<!----- Save ratings for details page 
<div class="rating"> 
    <p class="likes" ng-click="plusOne($index)"> 
    <i class="fa fa-thumbs-up"></i> 
    {{ item.likes }} </p> 
    <p class="dislikes" ng-click="minusOne($index)"><i class="fa fa-thumbs-down"></i> {{ item.dislikes }} </p> 

</div> --> 
<a href="#/details/:{{item.name}}" class="btn btn-custom"> View Product</a> 

</div> 

</div> 

의 URL에 표시 할 항목의 이름을 얻을 수있는 유일한 방법은 URL에 괄호를하는 것입니다 그리고 난 것을 알고있다 부정확하다. 어떤 도움이라도 대단히 감사하겠습니다.

답변

0

나는 알아 냈다, 나는 세부 사항 페이지를위한 관제사를 만들고 그 후에 json 자료를 얻을 필요가 있었다. 그런 다음 href 링크를

<a href="#/details/{{products.indexOf(item)}}" class="btn btn-custom"> View Product</a> 
으로 변경했습니다.
관련 문제