发表于: 2019-04-18 23:27:26

2 693


今天完成

列表页面的上下线和删除功能已经完成了,不过后台功能这边没有对接到前台,所以图片展示之类的功能并没有做上去,就剩下编辑和新增页面了,新增和编辑都有固定的接口,这个直接把数据灌进去就行了,问题就在于图片上传,需要需要预览还有图片信息的拉取显示。

//上下线
$scope.changeSta = function(index,status) {
   status = status !== 1 ? 1 : 2;
   httpService.changeStatus($scope.items[index].id,status).then(function successCallback(response) {},);
   $state.go('home.artList',$scope.searchParams,{reload: true});
};

上下线切换这个很简单,毕竟只有两个状态,只用将现在的状态切换成另外的状态,然后提交接口就行了,然后重新请求页面完成刷新,写的时候发现这里就请求了两次后台,不知道能不能跟后台约定,不管任何请求,都可以加上页面申请,然后返回操作成功信息和整个页面,或者按操作之前的页面请求返回相同的信息,这样不就少了一次请求了么。一个设想,不知道是否可行或者有没有这种操作。

//删除
$scope.deleteArt = function(index) {
   httpService.deleteArticle($scope.items[index].id);
   $state.go('home.artList',$scope.searchParams,{reload: true});
};

删除这个更简单了,只需要当前id,这里开始我不知道将页面的参数传过来,后来想到这不就是一个函数么,函数当然可以传参,不过这里传参的范围不知道是整个页面还是只有ng-repeat的范围

<tr ng-repeat="item in items">
   <td class="artList-td">{{$index + 1}}</td>
   <td class="artList-td">{{item.title}}</td>
   <td class="artList-td">{{item.type | artTypeFil}}</td>
   <td class="artList-td">{{item.createAt | date : 'yyyy-MM-dd'}}</td>
   <td class="artList-td">{{item.updateAt | date : 'yyyy-MM-dd'}}</td>
   <td class="artList-td">{{item.author}}</td>
   <td class="artList-td">{{item.status | artStatusFil}}</td>
   <td class="artList-td">
       <a ng-click="changeSta($index,item.status)" href="">{{item.status | artStatusBtnFil}}</a>
       <a ng-click="compileArt()" href="">编辑</a>
       <a ng-click="deleteArt($index)" href="">删除</a>
   </td>
</tr>

这里就直接将标签中的变量传过来了,ng-repeat 里面index是当前id,从0开始计数,这里我把他作为后台请求数据的数组的参数,就可以获得相对应的对象,然后取他的id值就可以了。同样最后通过重新请求并刷新界面,这里再说一次加强记忆,reload:true这里会重新运行整个页面,包括js文件。

angular这几个任务差不多在功能上快要完成了,基本的操作都会了,除了指令不太熟,剩下的就是怎么封装,这个还是只能多敲来理解了,代码是真丑。。。。。。

明天计划

完成最后两个功能,结束功能完成阶段,开始重构代码。


返回列表 返回列表
评论

    分享到