2017-04-03 17 views
0

私はLaravel 5.4とwebpackでVue 2を使用しています。私は、輸出のデフォルト{...}でスクリプトタグを持っているし、すべてが正常に動作します.vueファイルでLaravel webpackでVueフィルタが必要です

Vue.component('tabs', require('./components/global/Tabs.vue')); 

:私は、関連する.vueファイルを必要とすることによって、グローバル私のコンポーネントをロードします。今度は同じrequireを持つフィルタをロードしたいのですが、私はどんな形式でもできません。フィルタは次のとおりです:

Vue.filter('formatbytes', function (bytes, decimals) { 

if (bytes == 0) return '0 Bytes'; 
var k = 1000, 
    dm = decimals + 1 || 3, 
    sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
    i = Math.floor(Math.log(bytes)/Math.log(k)); 

    return parseFloat((bytes/Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; 

}); 

上記の動作は問題ありませんが、別の.vueファイルにフィルタロジックを挿入するにはどうすればよいですか?

export default { 
filters: { 
    formatbytes: function (bytes, decimals) { 
     ... 
    } 
    } 
} 

別:私は運で次でテストしているあなたはexport defaultを使用しての機能だけでなく、オブジェクトをエクスポートすることができますし、.vueコンポーネントでそれを持っている必要はありません

export default { 
formatbytes: function (bytes, decimals) { 
    ... 
    } 
} 

答えて

0

にコードを変更してみてください:

export default function (bytes, decimals) { 
    if (bytes == 0) return '0 Bytes'; 
    var k = 1000, 
    dm = decimals + 1 || 3, 
    sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], 
    i = Math.floor(Math.log(bytes)/Math.log(k)); 

    return parseFloat((bytes/Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i]; 
} 

とあなたが

vue.filter('formatbytes', require('/path/to/filter/formatbytes.js')) 
+0

おかげで動作するはず必要ですが、私は同じエラーを取得[ヴューが警告]:エラーでのレンダリング機能 –

+0

@IkerVázquezあなたのルートオブジェクト上のようなあなたのレンダリング機能を見て何? –

関連する問題