簡體   English   中英

Vue.js和Laravel集成問題

[英]Vue.js and Laravel integration issue

結合使用Laravel和Vue.js填充表會遇到一些問題。

本質上,我試圖將v-repeat屬性與使用vue-resources擴展名的http:get請求結合使用。 問題在於Vue似乎沒有傳遞任何值-我只是將{{first_name}}和{{email_address}}放在了括號中。

我可以確認http:get請求調用的API方法實際上是在分散數據(手動訪問瀏覽器中的URL會顯示數據)。

這是routes.php文件中負責輸出數據的代碼:

get('api/v1_users',function()
{
    return App\User::all()->toJson();
});

這是它在瀏覽器中顯示的內容:

[{"email_address":"test123@gmail.com,"first_name":"John","password":"test123"}]

Chrome控制台不會顯示任何錯誤或警告。

這是我的刀片文件:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Navbar Template for Bootstrap</title>

    <!-- Bootstrap core CSS -->
    <link media="all" type="text/css" rel="stylesheet" href="{{ URL::asset('css/bootstrap.min.css') }}">

    <!-- Custom styles for this template -->
    {!! Html::style('css/navbar.css') !!}


</head>

<body>

<div class="container">

    <!-- Static navbar -->
    <nav class="navbar navbar-default">
        <div class="container-fluid">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
                    <span class="sr-only">Toggle navigation</span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                    <span class="icon-bar"></span>
                </button>
                <a class="navbar-brand" href="#">User Password Operations</a>
            </div>
            <div id="navbar" class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li class="inactive"><a href="#">Reset New User</a></li>
                    <li class="inactive"><a href="#">Pending Users</a></li>
                </ul>
            </div><!--/.nav-collapse -->
        </div><!--/.container-fluid -->
    </nav>

    <!-- Main component for a primary marketing message or call to action -->
    <div class="jumbotron">
        <h1>Pending 1.0 Users</h1>
        <p>A list of 1.0 users that have a change!me password as a result of this tool, and are awaiting password change.</p>
    </div>
    <table class="table table-bordered">
        <tr>
            <td>
                <b>Name</b>
            </td>
            <td>
                <b>Email</b>
            </td>
            <td>
                <b>Select</b>
            </td>
        </tr>
        <div id = "user">
            <tr v-repeat = "user: v1_user">
                <td>
                    @{{ first_name }}
                </td>
                <td>
                    @{{ email_address }}
                </td>
                <td>
                    <button type="button" class="btn btn-success">Revert Password To Original</button>
                </td>
            </tr>
        </div>
    </table>
    <div class="jumbotron">
        <h1>Pending 2.0 Users</h1>
        <p>A list of 2.0 users that have a change!me password as a result of this tool, and are awaiting password change.</p>
    </div>
    <table class="table table-bordered">
        <tr>
            <td>
                <b>Name</b>
            </td>
            <td>
                <b>Email</b>
            </td>
            <td>
                <b>Select</b>
            </td>
        </tr>
        <div>
            <tr v-repeat = "user: v1_user">
                <td>
                    @{{user.first_name}}
                </td>
                <td>
                    @{{user.email_address}}
                </td>
                <td>
                    <button type="button" class="btn btn-success" v-on= "click: onClick">Revert Password To Original</button>
                </td>
            </tr>
        </div>
    </table>
</div> <!-- /container -->
<!-- Bootstrap core JavaScript
================================================== -->
<!-- Placed at the end of the document so the pages load faster -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<!-- Vue.js file REP  -->
<script src="/js/vue.js"></script>
<script src="/js/vue-resource.min.js"></script>
<!-- Main Vue file-->
<script src="/js/main.js"></script>

</body>
</html>

這是帶有Vue.js代碼的隨附javascript文件:(main.js)

  new Vue({
    el: "#user",

    data:
    {
        v1_user:[],
    },

    ready : function()
    {
        this.fetchV1IntermediaryUsers();
    },

    methods:
    {
        fetchV1IntermediaryUsers: function() {
            this.$http.get('/api/v1_users',function(v1users) {
                this.$set('v1_user',v1users);
            });

        }
    }
});

您有多個具有相同ID的DIV。 HTML中的ID必須是唯一的。 啟動VUE實例時,將其綁定到元素,在這種情況下,這是代碼中的兩次。 刪除ID並將ID添加到<Body>標記,然后檢查代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM