質問編集履歴
1
idをデータに追加し、propsにも定義しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -297,3 +297,163 @@
|
|
297
297
|
上記のthis.idに適当な数値を入力してみると動くのでidをいい感じに取得出来ればいいのだと思います。
|
298
298
|
|
299
299
|
アドバイスのほどよろしくお願いいたします。
|
300
|
+
|
301
|
+
|
302
|
+
|
303
|
+
### 追記
|
304
|
+
|
305
|
+
追記・修正依頼の方にidという変数がdataにもpropsにも無いという指摘を受けたので下記のコードペンにて修正しました。
|
306
|
+
|
307
|
+
[https://codepen.io/ebifly/pen/RywWvg](https://codepen.io/ebifly/pen/RywWvg)
|
308
|
+
|
309
|
+
```html
|
310
|
+
|
311
|
+
<div>
|
312
|
+
|
313
|
+
changeB
|
314
|
+
|
315
|
+
<name-list
|
316
|
+
|
317
|
+
:names="names"
|
318
|
+
|
319
|
+
<!--idのバインドを追加しました-->
|
320
|
+
|
321
|
+
:id="names.id"
|
322
|
+
|
323
|
+
@change-b="changeB"
|
324
|
+
|
325
|
+
></name-list>
|
326
|
+
|
327
|
+
</div>
|
328
|
+
|
329
|
+
```
|
330
|
+
|
331
|
+
```js
|
332
|
+
|
333
|
+
|
334
|
+
|
335
|
+
Vue.component('name-list',{
|
336
|
+
|
337
|
+
template:'\
|
338
|
+
|
339
|
+
<select name="name-list" v-model="selected" @change="changeB">\
|
340
|
+
|
341
|
+
<option value="">該当なし</option>\
|
342
|
+
|
343
|
+
<option\
|
344
|
+
|
345
|
+
v-for="(name, index) in names"\
|
346
|
+
|
347
|
+
:value="name.title"\
|
348
|
+
|
349
|
+
>{{ name.title }}\
|
350
|
+
|
351
|
+
</option>\
|
352
|
+
|
353
|
+
</select>\
|
354
|
+
|
355
|
+
',
|
356
|
+
|
357
|
+
//propsにidを追加しました
|
358
|
+
|
359
|
+
props: ['names', 'id'],
|
360
|
+
|
361
|
+
data: function data() {
|
362
|
+
|
363
|
+
return {
|
364
|
+
|
365
|
+
selected: '',
|
366
|
+
|
367
|
+
};
|
368
|
+
|
369
|
+
},
|
370
|
+
|
371
|
+
methods: {
|
372
|
+
|
373
|
+
changeB: function changeB(){
|
374
|
+
|
375
|
+
this.$emit('change-b', this.id)
|
376
|
+
|
377
|
+
}
|
378
|
+
|
379
|
+
}
|
380
|
+
|
381
|
+
});
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
var vm = new Vue({
|
386
|
+
|
387
|
+
el: '#main',
|
388
|
+
|
389
|
+
data: {
|
390
|
+
|
391
|
+
newNameText: '',
|
392
|
+
|
393
|
+
nextImg: 1,
|
394
|
+
|
395
|
+
nextId: 0,
|
396
|
+
|
397
|
+
names: []
|
398
|
+
|
399
|
+
},
|
400
|
+
|
401
|
+
methods: {
|
402
|
+
|
403
|
+
addNewName: function () {
|
404
|
+
|
405
|
+
if (this.newNameText !== '') {
|
406
|
+
|
407
|
+
if (this.nextImg > 10) {
|
408
|
+
|
409
|
+
this.nextImg = 1
|
410
|
+
|
411
|
+
}
|
412
|
+
|
413
|
+
this.names.push({
|
414
|
+
|
415
|
+
img: this.nextImg++,
|
416
|
+
|
417
|
+
//idのデータを追加しました。
|
418
|
+
|
419
|
+
id: this.nextId++,
|
420
|
+
|
421
|
+
title: this.newNameText,
|
422
|
+
|
423
|
+
status: 'a'
|
424
|
+
|
425
|
+
})
|
426
|
+
|
427
|
+
}
|
428
|
+
|
429
|
+
this.newNameText = ''
|
430
|
+
|
431
|
+
},
|
432
|
+
|
433
|
+
updateName: function updateName(id, name){
|
434
|
+
|
435
|
+
this.names[id].title = name
|
436
|
+
|
437
|
+
},
|
438
|
+
|
439
|
+
changeB: function changeB(id){
|
440
|
+
|
441
|
+
this.names[id].status = 'b'
|
442
|
+
|
443
|
+
}
|
444
|
+
|
445
|
+
}
|
446
|
+
|
447
|
+
})
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
vm.$mount('#main');
|
452
|
+
|
453
|
+
```
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
この状態でも上手く動かないので、参照の仕方がおかしいのでしょうか?
|
458
|
+
|
459
|
+
アドバイスよろしくお願いしますm(_ _)m
|