条件v-bind:签入vuejs

时间:2016-08-09 03:53:13

标签: laravel-5.2 vue.js

我想根据数据库中特定数据的存在来检查我的复选框。我在laravel中使用vuejs。 以下是我的复选框代码:

<input type="checkbox" value="{{$complaint->complaintID}}" :checked="CheckCECDecisionSigned({{$complaint->complaintID}})" disabled>

以下是我的vuejs方法:

methods: {
        CheckCECDecisionSigned: function (complaintID) {
            if (complaintID) {
                var self = this;
                this.$http.get('/cimsm/public/api/fetchCECDecisionSignature/' + complaintID).then(function (response) {
                    if (response.data.length > 0) {
                        return true;
                    }
                });
            }
        },

如您所见,如果response.data.length > 0,那么我想返回true,因此选中了复选框。但即使response.data.length大于0,我也无法让方法返回布尔值。你能帮我解决吗?。

1 个答案:

答案 0 :(得分:0)

我不认为这会有效,因为调用是异步的。您应该尝试将复选框的状态绑定到变量,并v-model复选框,如:

<input type="checkbox"
value="{{$complaint->complaintID}}"
:v-model="isChecked" 
disabled>

然后,在AJAX函数的回调中:

if (response.data.length > 0) {
  self.isChecked = true
}

你需要解决一些问题,比如找到另一种方法将complaintID传递给AJAX函数(可能使用组件和道具?)。检查一下:https://vuejs.org/guide/forms.html#Checkbox