gpt4 book ai didi

javascript - 将参数传递给 Vue 函数

转载 作者:行者123 更新时间:2023-11-30 14:44:47 24 4
gpt4 key购买 nike

如何将选定的值传递给 vuejs 函数?

引用下面的代码,我该如何传递呢?

这里selectCamera(camera),camera变量是嵌套的,所以不知道。如何将选定的相机变量发送到 selectCamera?

            <select style="width:100%" v-model="cameras" v-on:change="selectCamera(camera)">
<option v-model="camera.id" v-for="camera in cameras" :key="camera.id"> {{ formatName(camera.name) }} </option>
</select>

更新

我附上代码如下

var app = new Vue({
el: '#app',
data: {
scanner: null,
activeCameraId: null,
cameras: [],
scans: []
},
mounted: function() {
var self = this;
self.scanner = new Instascan.Scanner({
video: document.getElementById('preview'),
mirror: true,
backgroundScan: false,
scanPeriod: 2
});
self.scanner.addListener('scan', function(content, image) {
PlaySound();
showContent(content);
//google.script.run.capture(content);
alert(content)

$.ajax({
url: 'https://script.google.com/macros/s/AKfycbzObHXjA-gXSyxvyRc5nYVs6yP2sElNpfuWMsIGtLf1yUUXd4n7/exec?data='+content+'&callback=doNothing',
type: 'GET',
dataType: 'jsonp',
error: function(xhr, status, error) {
alert("error");
},
success: function(json) {
alert("success");
}
});



self.scans.unshift({
date: +(Date.now()),
content: content
});
});
Instascan.Camera.getCameras().then(function(cameras) {
self.cameras = cameras;
if (cameras.length > 0) {
self.activeCameraId = cameras[1].id;
self.scanner.start(cameras[1]);
} else {
console.error('No cameras found.');
}
}).catch(function(e) {
console.error(e);
});
},
methods: {
formatName: function(name) {
return name || '(unknown)';
},
selectCamera: function(camera) {
this.activeCameraId = camera.id;
this.scanner.start(camera);
}
}
});

最佳答案

我认为您正在尝试从下拉列表中获取选定的相机选项。试试这个方法

HTML

    <select style="width:100%" v-model="activeCameraId" v-on:change="selectCamera()">
<option v-for="camera in cameras" :value="camera.id"> {{ formatName(camera.name) }} </option>
</select>

JS

var app = new Vue({
el: '#app',
data: {
scanner: null,
activeCameraId: null,
cameras: [],
scans: []
},
mounted: function() {
var self = this;
self.scanner = new Instascan.Scanner({
video: document.getElementById('preview'),
mirror: true,
backgroundScan: false,
scanPeriod: 2
});
self.scanner.addListener('scan', function(content, image) {
PlaySound();
showContent(content);
alert(content)

$.ajax({
url: 'https://script.google.com/macros/s/AKfycbzObHXjA-gXSyxvyRc5nYVs6yP2sElNpfuWMsIGtLf1yUUXd4n7/exec?data='+content+'&callback=doNothing',
type: 'GET',
dataType: 'jsonp',
error: function(xhr, status, error) {
alert("error");
},
success: function(json) {
alert("success");
}
});

self.scans.unshift({
date: +(Date.now()),
content: content
});
});
Instascan.Camera.getCameras().then(function(cameras) {
self.cameras = cameras;
if (cameras.length > 0) {
self.activeCameraId = cameras[1].id;
self.scanner.start(cameras[1]);
} else {
console.error('No cameras found.');
}
}).catch(function(e) {
console.error(e);
});
},
methods: {
formatName: function(name) {
return name || '(unknown)';
},
selectCamera: function() {
for (var i = 0; i < this.cameras.length;i++) {
if (this.cameras[i].id === this.activeCameraId) {
this.scanner.start(this.cameras[i]);
}
}
}
}
});

关于javascript - 将参数传递给 Vue 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49127262/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com