2017-04-12 59 views
1

我想在我的blade.php文件中使用JavaScript函數。我創建了xyz.js一個非常簡單的功能Laravel blade.php使用JavaScript通過混合編譯app.js

function picture(soemthing){ 
    document.getElementById('idXYZ').src = "example.com"; 
} 

然後我說這個文件到webpack.mix.js配置文件:

mix.js(['resources/assets/js/app.js', 'resources/assets/js/xyz.js'], 'public/js') 
.sass('resources/assets/sass/app.scss', 'public/css'); 

並運行:運行NPM開發。到目前爲止好,NPM編譯我的腳本和圖片功能被列入app.js文件。現在我想在blade.php中添加一個表單,並在點擊時調用圖片函數。我創建了以下blade.php文件:

@extends('layouts.app') 
@section('content') 
<div class="container"> 
    <form> 
     Enter url: <input type="text" id="someID"> 
     <input type="button" onclick="picture($('#someID').val())" value="Click"/> 
    </form> 
</div> 
<script src="{{ mix('js/app.js') }}"></script> 
@endsection 

在這裏,我得到了真的失去了(順便說一句:我總是後端的傢伙)。在頁面重新加載瀏覽器顯示

[Vue公司提醒]:錯誤編譯模板:模板應該只負責狀態映射到用戶界面。避免在模板中放置帶副作用的標籤,例如,因爲它們不會被解析。

當我按一下按鈕我有

錯誤新:76未捕獲的ReferenceError:XYZ是沒有定義

我明白,第一個錯誤說,app.js文件未加載這就是爲什麼圖片找不到。我應該如何包含app.js或其他由JavaScript混合文件編譯的內容?它真的是導致這個問題的標籤嗎?

回答

0

我想你,因爲你把一個新的腳本的vue.js應用div中發現了錯誤。

如果你打開你的佈局文件app.blade.php有一個div與id="app"和裏面你有你的內容部分產量。副作用意味着您不應該在Vue.js模板中加載新腳本。

腳本應該在body標籤結束在你的佈局。此外腳本標籤應如下所示: <script src="{{ asset('js/app.js') }}"></script>

然後您的腳本應該可用。但我會看看Vue.js以及您如何處理那裏的點擊事件。 click handler docs

+0

我有確切的

相關問題