Angularjs,仅显示与所选类别相关的产品
我正在尝试显示selecte类别ID下的所有产品。 示例JSON文件:Angularjs,仅显示与所选类别相关的产品,angularjs,json,jstree,android-tabs,Angularjs,Json,Jstree,Android Tabs,我正在尝试显示selecte类别ID下的所有产品。 示例JSON文件: [{ "product_id":"1", "product_name":"Name of the book 1", "product_image":"image Url 1", "category_id":"1" }, { "product_id":"2", "product_name":"Name of the book 2", "product_image":"image Url 2", "category_id":"2
[{
"product_id":"1",
"product_name":"Name of the book 1",
"product_image":"image Url 1",
"category_id":"1"
},
{
"product_id":"2",
"product_name":"Name of the book 2",
"product_image":"image Url 2",
"category_id":"2"
},
{
"product_id":"3",
"product_name":"Name of the book 3",
"product_image":"image Url 3",
"category_id":"3"
}]
我有如下控制器。我从json文件中读取数据。正如您在示例中看到的,我可以在控制台中显示实际的产品名称,但无法在html页面中显示
.controller('CategoryDetailCtrl', function($scope, product,$stateParams) {
product.fetch().then(function(data) {
$scope.dataq=data;
for (var i=0; i < $scope.dataq.length; i++){
if ($scope.dataq[i].product_id == $stateParams.categoryId){
$scope.data=data;
console.log($scope.data[i].product_name);
}
} return null;
})
})
.controller('CategoryDetailCtrl',函数($scope,product,$stateparms){
product.fetch().then(函数(数据){
$scope.dataq=数据;
对于(变量i=0;i<$scope.dataq.length;i++){
if($scope.dataq[i].product_id==$stateParams.categoryId){
$scope.data=数据;
console.log($scope.data[i].product\u name);
}
}返回null;
})
})
Html示例如下所示:
<ion-item class="item-remove-animate item-avatar item-icon-right" ng-repeat="p in data" type="item-text-wrap">
<h2>{{p.product_name}}</h2>
</ion-item>
{{p.product_name}}
有人能帮忙吗?我通过编辑控制器解决了这个问题,比如
.controller('CategoryDetailCtrl', function($scope, product,$stateParams) {
product.fetch().then(function(data) {
$scope.data=data;
$scope.catId=$stateParams.categoryId;
})
并在html端使用过滤函数,而不是在控制器中使用if
ng-repeat="p in data | filter: {category_id: catId}"
$scope.data=数据;这部分是错误的。我只需要分配匹配数组的值,但我不知道如何分配。