这是全部代码,目前遇到几个问题
export const sliderOptions={
direction:'horizontal',
loop:true,
interval:5000,
pagination:true
};<template>
<transition name="product">
<div class="product">
<header class="g-header-container">
<product-header></product-header>
</header>
<me-scroll>
<product-slider :slider="products"></product-slider>
<product-content></product-content>
</me-scroll>
</div>
</transition>
</template>
<script>
import {getProductDetail} from 'api/product';
import ProductHeader from './header';
import MeScroll from 'base/scroll';
import ProductSlider from './slider';
import ProductContent from './content';
export default {
name: 'Product',
components:{
ProductHeader,
MeScroll,
ProductSlider,
ProductContent
},
data(){
return {
products:{}
};
},
created(){
getProductDetail(this.$route.params.id).then(data => {
console.log(data.data);
this.products=data.data;
});
}
};
</script>
<style lang="scss" scoped>
@import "~assets/scss/mixins";
.product {
overflow: hidden;
position: absolute;
top: 0;
left: 0;
z-index: $product-z-index;
width: 100%;
height: 100%;
background-color: $bgc-theme;
}
.product-enter-active,
.product-leave-active {
transition: all 0.3s;
}
.product-enter,
.product-leave-to {
transform: translate3d(100%, 0, 0);
}
.product-enter-to{
transform: translate3d(0, 0, 0);
}
</style><template>
<div class="slider-wrapper">
<me-loading :text="'加载中'" v-if="!sliders.length"></me-loading>
<me-slider :direction="direction" :loop="loop" :interval="interval" :pagination="pagination" :datas="sliders" v-else>
<swiper-slide v-for="(item,index) in sliders" :key="index">
<a href="#" class="slider-link">
<img :src="item" alt="pic" class="slider-img">
</a>
</swiper-slide>
</me-slider>
</div>
</template>
<script>
import MeSlider from 'base/slider';
import {swiperSlide} from 'vue-awesome-swiper';
import {getProductDetail} from 'api/product';
import {sliderOptions} from './config';
import {getHomeSlider} from 'api/home';
import MeLoading from 'base/loading';
export default {
name: 'HomeSlider',
components:{
MeSlider,
MeLoading,
swiperSlide
},
data(){
return{
direction:sliderOptions.direction,
loop:sliderOptions.loop,
interval:sliderOptions.interval,
pagination:sliderOptions.pagination,
sliders:[]
};
},
props:{
slider:{
type:[Object,Array]
}
},
watch: {
slider(slider){
this.sliders=slider;
//console.log(this.sliders);
}
}
// created(){
// this.getSliders();
// },
// methods:{
// getSliders(){
// getProductDetail(this.$route.params.id).then(data => {
// //console.log(data.data);
// this.sliders=data.data.item.images;
// });
// }
// }
};
</script>
<style lang="scss" scoped>
.slider-wrapper{
height: 300px;
}
.slider-link{
display: block;
}
.slider-link,.slider-img{
width: 100%;
height: 100%;
}
</style><template>
<div>
<div>
<p>¥{{content.seller.allItemCount}}</p>
<p>{{content.seller.newItemCount}}件已售</p>
</div>
</div>
</template>
<script>
import {getProductDetail} from 'api/product';
export default {
data(){
return {
content:{}
};
},
created(){
this.getContent();
},
methods:{
getContent(){
getProductDetail(this.$route.params.id).then(data => {
//console.log(data.data);
this.content=data.data;
});
}
}
};
</script>
<style lang="scss" scoped>
</style><template>
<me-navbar class="header">
<i class="iconfont" slot="left" @click="goBack"></i>
<p slot="center">商品详情</p>
<i class="iconfont" slot="right"></i>
</me-navbar>
</template>
<script>
import MeNavbar from "base/navbar";
export default {
name: 'ProductHeader',
components:{
MeNavbar
},
data(){
return{
};
},
methods:{
goBack(){
this.$router.back();
}
}
};
</script>
<style lang="scss" scoped>
@import "~assets/scss/mixins";
.header{
background-color: $header-bgc-translucent;
color: white;
p{
text-align: center;
}
}
</style>import jsonp from 'assets/js/jsonp';
import {jsonpOptions} from './config';
export const getProductDetail=(id) => {
const url='https://unszacs.m.taobao.com/h5/mtop.taobao.detail.getdetail/6.0/';
const params={
api:'mtop.taobao.detail.getdetail',
ttid:'2017@taobao_h5_6.6.0',
data:`{"itemNumId":"${id}"}`,
appkey:12574478,
dataType:'jsonp',
type:'jsonp'
};
return jsonp(url,params,jsonpOptions).then(res =>{
//console.log(res);
if(res.ret[0]==="SUCCESS::调用成功"){
return res;
}
throw new Error('没有成功获取数据');
}).catch(err => {
if(err){
console.log(err);
}
//等价于return undefined;
}).then(data =>{//测试用,可以整体删除
return new Promise(resolve =>{
setTimeout(() => {
resolve(data);
},1000);
})
});
}
1、content获取的数据无法绑定在页面上,报错了
2、我想通过父组件传给子组件数据,尝试失败,即slider,图片找不到了
3、
我获取的数据和老师获取的数据不一致,什么原因
4、这个页面所需要的数据老师能不能帮我整理下,我找不到
(价格、“味道不错”之类的评价、logo图标链接、发货地址、商品评价展示(一段话)、商店名称)
正在回答 回答被采纳积分+1
同学你好,其他问题,可以参考如下问答:
http://class.imooc.com/course/qadetail/213685
另外,因为这个是第三方接口,即使老师去做,也是一个一个的去找。数据很多,的确要费一点功夫,每一个同学在做这个作业时,都是自己耐心的去找数据,去尝试的,最终完成的。这个问题不像一道难题,无论怎么思考都想不到方法。只要自己静下心一点一点的整理,是可以做出来的。同学现在已经学到最后一个阶段了,如果还像小白入门那样每一步都是老师为你做好,那么你是没有什么成长的。哪怕使用的数据有一些不对,也比让别人帮你做好强。工作中,也会遇到使用第三方接口的问题,难道那个时候同学要让同事或者领导帮你整理吗?如果真是这样,公司会认为你能力很差,无法胜任这份工作的。
老师说的话有一些沉重了,但是也是为了同学好,毕竟最近一个阶段结束后,可能要面临找工作了。如果这个时候,还不去提升自己独立思考与解决问题的能力,那么以后的工作就真的是寸步难听了。希望同学加油哦,相信自己是可以的 !
祝学习愉快 ~
同学你好,第三个问题,老师已经在你的另一个问题中进行了回复,可以查看问题:
https://class.imooc.com/course/qadetail/213683
其他的问题,老师通过私信帮助你解决哦。
祝学习愉快~
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星