VueJsでTODO MVCを複製しようとしています。 (このcodepenをチェックアウトしてください:http://codepen.io/sankalpsingha/pen/gwymJg) 私は次のコードで「TODOリスト」と呼ばれるコンポーネントを作成しました:VueJsの非親コンポーネントへのデータの送信
Vue.component('todo-list',{
template: '#todo-list',
props: ['todo'],
data: function(){
return {
// Let us set up a isEditing Boolean so that we can know if the user
// will edit something and we need to change the state to reflect it.
isEditing: false
}
},
methods: {
enableEditing: function(){
this.isEditing = true;
},
editTodo: function(todo){
// todo.todo = todo.todo.trim();
this.isEditing = false;
},
removeTodo: function(todo){
//this.todos.$remove(todo); // --> This part is not working?
}
}
});
はしかし、私はアプリのインスタンスで定義されたデータを持っている:
var app = new Vue({
el: '#todo-section',
data: {
newTodo: '',
todos: [
{
id: 1,
todo: 'Go to the grocery',
completed: false
},
{
id: 2,
todo: 'See the movie',
completed: true
},
{
id: 3,
todo: 'Jack Reacher : Tom Cruise',
completed: false
}
]
},
methods: {
addTodo: function(){
// This will not allow any empty items to be added.
if(this.newTodo.trim() == ''){
return;
}
this.todos.push({
todo: this.newTodo.trim(),
completed: false
});
this.newTodo = ''
}
}
});
リストから1つのTodoを削除できません。私の推測では、私はアプリのインスタンスに送信メッセージを送信し、それからデータを削除するリスナーを置く必要があるということですか?データを削除するにはどうすればよいですか?
ところで、彼はそれを指摘してくれてありがとう@Belmin Vueの2 –
に、廃止され、2.0を使用して$削除されます!私はVue 1.xからのものであることを知らなかった。2.0リリース後に初めてVueを学び始めたからだ。したがって、 '$ remove'は配列項目を削除することになっているので、' splice'を使う必要はありませんか? – Mani
ええ、基本的にはVue 1.0で$ removeはarray.spliceの構文砂糖だけでした.Vue 2になってからは廃止予定ですので、このようなものにはarray.spliceを使うことをお勧めします。 –