Vue.js |过滤器不归还

时间:2018-06-19 06:48:40

标签: vue.js pagekit

我有一个问题。

我发布了一个带有http帖子的类别ID。 status返回的数据为true。我想从后面返回值count变量。但是伯爵不会回去。返回功能不起作用。函数中的值不会从外部返回。

category-index - >图

<td>{{category.id | count}}</td>

控制器文件

/**
* @Access(admin=true)
* @Route(methods="POST")
* @Request({"id": "integer"}, csrf=true)
*/
public function countAction($id){
 return ['status'  => 'yes'];
}

Vue文件

filters: {
 count: function(data){
  var count = '';
  this.$http.post('/admin/api/dpnblog/category/count' , {id:data} , function(success){
    count = success.status;
  }).catch(function(error){
    console.log('error')
  })
  return count;
 }
}

但不能正常工作:(

谢谢你们。

2 个答案:

答案 0 :(得分:1)

注意:由于您使用<td>,因此暗示您拥有完整的表格;您可能需要考虑一次性将它们全部减少以减少后端呼叫的数量。

过滤器适用于简单的就地字符串修改,如格式化等。 考虑使用一种方法来获取它。

模板

<td>{{ categoryCount }}</td>

脚本

data() {
  return {
     categoryCount: ''
  }
},
created() {
  this.categoryCount = this.fetchCategoryCount()
},
methods: {
 async fetchCategoryCount() {
  try {
    const response = await this.$http.post('/admin/api/dpnblog/category/count', {id: this.category.id})
    return response.status;
  } catch(error) {
    console.error('error')
  }
 }
}

答案 1 :(得分:0)

视图

<td>{{count}}</td>

VUE

data() {
    return {
      count: '',
    }
  },
  mounted() {
    // or in any other Controller, and set your id this function
    this.countFunc()
  },
  methods: {
    countFunc: function(data) {
      this.$http
        .post('/admin/api/dpnblog/category/count', { id: data }, function(
          success,
        ) {
          // update view
          this.count = success.status
        })
        .catch(function(error) {
          console.log('error')
        })
    },
  },