从mysql获取数据。

时间:2022-02-28 12:52:04

I need to fetch data from my database, updated a div and onclick update another div.
I managed to fetch the data but I fail to load additional by onCLick.

我需要从我的数据库中获取数据,更新一个div并onclick更新另一个div。

My Code:

我的代码:

var app = angular.module('mainApp', [], function($interpolateProvider) {
$interpolateProvider.startSymbol('<%');
$interpolateProvider.endSymbol('%>');
});

app.controller('mainController', function($scope, $http) {

$scope.fetcheddata = [];
$scope.loading = false;

$scope.init = function() {
    $scope.loading = true;
    $http.get('/api/content').
    success(function(data, status, headers, config) {
        $scope.fetcheddata = data;
            $scope.loading = false;

    });
}
$scope.getDesc = function() {
    $scope.loading = true;
    $http.get('/api/content/get/' + item.id).
    success(function(data, status, headers, config) {
        $scope.fetcheddata = data;
            $scope.loading = false;

    });
}

$scope.init();

});

});

View Code:

视图代码:

 <div class="col-xs-2 type-image" tr ng-repeat='item in fetcheddata'>
     <a href="#" class="thumbnail click-productgroup" data-group="show-<% item.group %>">
       <img src="<% item.image %>" class="img-responsive">
     </a>
  </div>  

The -tag should fetch the item.description and update another div. How can I do that?
I tried with an getDesc scope. Is this right? But how do I updated the div?

标签应该获取项目。description并更新另一个div。我怎么做呢?我尝试了一个getDesc范围。这是正确的吗?但是如何更新div呢?

EDIT 1:

编辑1:

                <div class="row">
                <div class="col-md-7" id="productGroups">
                        <div class="row type-row">

                            <div class="col-xs-2 type-image" ng-repeat='item in fetchedData'>
                                <a href="#" class="thumbnail" ng-click='getDesc(<% item.id %>)'>
                                    <img src="<% item.image %>" class="img-responsive">
                                </a>
                            </div>

                        </div>
                </div>
                <div class="col-md-5 type-description">
                    <% fetchedDesc | json %>
                </div>
            </div>  

and in my controller:

在我的控制器:

$scope.getDesc = function() {
    $scope.loading = true;
    $http.get('/api/content/get/' + item.id).
    success(function(data, status, headers, config) {
        $scope.fetchedDesc = data.description;
            $scope.loading = false;

    });
}  

Still the page jumps on click to the top and no content in the div (although ng-binding appears in the html).

页面仍然跳转到顶部,div中没有内容(尽管ng-binding出现在html中)。

2 个解决方案

#1


2  

Firstly, the page is jumping because the href of your anchor tag is #, remove that to stop it from happening :).

首先,页面会跳转,因为锚标记的href是#,删除它以阻止它发生:)。

Secondly, I think the best way of achieving what you're after would be to ensure that each item fetched from the server in the $http.get('/api/content') call has the description as a property, rather than fetching it seperately, and then do something like this:

其次,我认为实现您所追求的最佳方式是确保在$http.get('/api/内容')调用中从服务器获取的每一项都将描述作为属性,而不是分开获取,然后执行以下操作:

$http.get('/api/content').
    success(function(data, status, headers, config) {
        $scope.items = data;
    });


$scope.selectItem = function(item) {
    $scope.selectedItem = item;
}

And in the view:

和观点:

<div class="col-xs-2 type-image" tr ng-repeat='item in items'>
    <a href="" class="thumbnail click-productgroup" ng-click="selectItem(item)">
        <img src="{{ item.image }}" class="img-responsive">
    </a>
</div>
<div>
    {{ selectedItem.description }}
</div>

#2


1  

I notice that is your getDesc you don't pass item.id?

我注意到那是你的getDesc你没有传递item.id?

$scope.getDesc = function(item) {
 $http.get('/api/content/get/' + item.id)
   .then(function(data) {
      console.log(data)
   })
}

This should come from ng-click of the div tag?

这应该来自于div标签的ng-click ?

 <div class="col-xs-2 type-image" tr ng-repeat='item in fetcheddata'>
     <a href="#" class="thumbnail click-productgroup" data-group="show-<% item.group %>" ng-click="getDesc(item)">
       <img src="<% item.image %>" class="img-responsive">
     </a>
  </div> 

#1


2  

Firstly, the page is jumping because the href of your anchor tag is #, remove that to stop it from happening :).

首先,页面会跳转,因为锚标记的href是#,删除它以阻止它发生:)。

Secondly, I think the best way of achieving what you're after would be to ensure that each item fetched from the server in the $http.get('/api/content') call has the description as a property, rather than fetching it seperately, and then do something like this:

其次,我认为实现您所追求的最佳方式是确保在$http.get('/api/内容')调用中从服务器获取的每一项都将描述作为属性,而不是分开获取,然后执行以下操作:

$http.get('/api/content').
    success(function(data, status, headers, config) {
        $scope.items = data;
    });


$scope.selectItem = function(item) {
    $scope.selectedItem = item;
}

And in the view:

和观点:

<div class="col-xs-2 type-image" tr ng-repeat='item in items'>
    <a href="" class="thumbnail click-productgroup" ng-click="selectItem(item)">
        <img src="{{ item.image }}" class="img-responsive">
    </a>
</div>
<div>
    {{ selectedItem.description }}
</div>

#2


1  

I notice that is your getDesc you don't pass item.id?

我注意到那是你的getDesc你没有传递item.id?

$scope.getDesc = function(item) {
 $http.get('/api/content/get/' + item.id)
   .then(function(data) {
      console.log(data)
   })
}

This should come from ng-click of the div tag?

这应该来自于div标签的ng-click ?

 <div class="col-xs-2 type-image" tr ng-repeat='item in fetcheddata'>
     <a href="#" class="thumbnail click-productgroup" data-group="show-<% item.group %>" ng-click="getDesc(item)">
       <img src="<% item.image %>" class="img-responsive">
     </a>
  </div>