2016-11-20 1 views
1

Warum funktioniert nicht mit vue-router 0.7.13 + SweetAlert Seite umleiten? Ich mag das tun (Laravel 5.3):

Hier ist article.blade.php:

... 
<a href="#" v-on:click.prevent="deleteArticle('/articles/{{ $article->id }}/delete')">Delete</a> 
... 

Dies ist mein app.js:

window.Vue = require('vue'); 
window.VueRouter = require('vue-router'); 
Vue.use(VueRouter); 

var article_form = new Vue({ 
    el: '#article_form', 
    data: { 
    ... 
    }, 
    methods: { 
    ... 
    ... 
    deleteArticle: function (url) { // Click Delete button 
     var self = this; 
     swal({ 
     title: "Are you sure?", 
     text: "You will not be able to recover this imaginary file!", 
     type: "warning", 
     showCancelButton: true, 
     confirmButtonColor: "#DD6B55", 
     confirmButtonText: "Yes, delete it!", 
     closeOnConfirm: false 
     }, function() { // Click Yes button 
     self.$http.delete(url).then(function() { 
      swal({ 
      title: "Deleted!", 
      text: "Your imaginary file has been deleted.", 
      type: "success" 
      }, function() { // After click ОК must be redirect 
      self.$route.router.go('/articles'); 
      }); 
     }); 
     }); 
    } 
    } 
}); 

Und package.json:

{ 
    "private": true, 
    "scripts": { 
    "prod": "gulp --production", 
    "dev": "gulp watch" 
    }, 
    "devDependencies": { 
    "gulp": "^3.9.1", 
    "laravel-elixir": "^6.0.0-14", 
    "laravel-elixir-webpack-official": "^1.0.9", 
    "vue-resource": "^1.0.3" 
    }, 
    "dependencies": { 
    "sweetalert": "^1.1.3", 
    "vue": "^1.0.28", 
    "vue-router": "^0.7.13" 
    } 
} 

Es ist ein Fehler (von OS X Safari Konsole): TypeError: undefined is not an object (evaluating 'self.$route.router').

Ich habe versucht, mehr wie folgt aus: self.$router.go('/articles'), aber es mir gleiche Fehler zeigen. Irgendwie für ihn $route (oder $router) als undefined.

Was kann falsch sein?

Antwort

3

Sie vergessen haben, um tatsächlich das Plugin zu installieren:

var VueRouter = require ('vue-router') 
Vue.use (VueRouter) 
+0

ich dies app.js hinzufügen, aber denselben Fehler suchen .. –

+0

@VikkyShostak Dies kann das Problem aber bemerkenswert, nicht lösen: 'go' verwendet wird wie 'go (1)' oder 'go (-1)' um vorwärts/rückwärts zu springen, benutze 'this. $ router.push ('/ articles')' in deinem Fall. Ich testete und 'go ('/ articles')' lädt die Seite irgendwie neu. –

+0

@PanJunjie 潘俊杰 'Push' Methode arbeiten auf vue-Router 0.7.13? –

Verwandte Themen