0

我有一个视图产品,其中填充了来自控制器 ProductsCtrl 的数据。当点击这些产品之一时,id 被传递给控制器​​中的一个函数。

在这个函数内部,调用 ProductsService 中的另一个函数,发出一个 http 请求。服务中的函数将响应中的数据传递给控制器​​中的函数。从那里我尝试将状态更改为另一个视图(产品详细信息),传递这些数据。

到目前为止的代码:

控制器:

$scope.gotoproduct = function (product_id) {
        console.log("the product id "+product_id); //ok

        ProductService.productdetail(product_id).then(function(data) {
           // $scope.userdata = data;
            console.log("@product detail controller funct")
            console.log(data);
            console.log("prape id -- "+product_id);
            $state.go('product_detail', {the_data: data})
        }).catch(function(errorResponse) {
            console.log('error', errorResponse);
        });

    }

服务:

service.productdetail = function(product_id){
        console.log("@product detail service funct");
        return httppostrequest($http, producturl, productdata);
    }

状态声明:

.state('product_detail', {
          url: '/products/detail',
          parent: 'app',
          params: {the_data: null},
          views: {
              'products-tab@app': {
                  templateUrl: 'templates/product.detail.html',
                  controller: 'ProductsCtrl as product'
              }
          }
      })

视图(我保持简单,只首先显示数据):

<ion-view view-title="{{::products.messages.title}}" >
    <ion-content>
        <div class = "card">
            <div class = "item item-avatar">
                <img src = "my-image.png">
            </div>

            <div class = "item item-body">
                <img class = "full-image" src = "my-image.png">
                Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque eget
                pharetra tortor. Proin quis eros imperdiet, facilisis nisi in, tincidunt orci.
                Nam tristique elit massa, quis faucibus augue finibus ac.
            </div>
        </div>

        <p>{{product.the_data}}</p>
    </ion-content>
</ion-view>

一切正常执行。id 传递给控制器​​,然后传递给服务。服务发出请求并将响应正确传递给控制器​​。状态变化有效,视图更改为产品详细信息。但是没有数据显示。我的一个理论涉及角度是异步的事实。也许在数据传递之前状态会发生变化。但是我尝试放置静态数据,但仍然没有显示任何内容。

4

0 回答 0