无法在Laravel Blade视图中获取Angular范围数据

时间:2015-10-16 10:58:36

标签: angularjs laravel-5

我是Angular的新手。我试图从Angular控制器获取数据到Laravel Blade。由于某种原因,它无法正常工作。

socket.io部分正在运作。我在console.log上做了$scope.message,它就在那里。

所以问题出在Angular代码和Laravel刀片之间。我的代码是:

<body ng-app="app">
<div ng-controller="AppCtrl">
<input id="auth_id"  type="hidden" value="{{ Auth::user()->id }}" />
<h1>New Users</h1>
<ul>
   <li ng-repeat="message in messages">
    @{{ message.body }}
    </li>
</ul>
</div>
<script src="{{ asset('/js/socket.io.js') }}"></script>

<script>
var app = angular.module('app', [])
    .controller('AppCtrl', function ($scope){
        var socket = io('http://192.168.10.10:3000');
        $scope.id = document.getElementById('auth_id').value;
        socket.on("user."+ $scope.id + ":App\\Events\\EventDeletedOrEditedBroadcast", function(data) {
            $scope.messages = data.message;
        });
    });
</script>
</body>

提前致谢。

3 个答案:

答案 0 :(得分:0)

您在范围中声明的变量与您要访问的变量不同

$ scope.messages

@ {{消息}}

那个S

答案 1 :(得分:0)

这个问题与Binding有关;确保消息在$ scope中。

检查:<input type="text" ng-model="test">

在控制器中:

$ scope.test = data.message(任何字符串);

如果它有效则肯定存在绑定问题。

答案 2 :(得分:0)

我知道这是一个古老的问题,我对所有这些东西都很陌生(laravel,angular等),但我认为你在寻找的是:

为了让角度范围在这里工作

   <li ng-repeat="message in messages">
@{{ message.body }}
</li>

以及&#34; {{&#34; &#34;}}&#34; laravel使用,你必须通过使用$ interpolateProvider定义另一种获取范围的方法,就像这样

var app = angular.module('app', []);
app.config(config);
config.$inject = ['$interpolateProvider'];
function config($interpolateProvider){

$interpolateProvider.startSymbol('<<');
$interpolateProvider.endSymbol('>>');
}

那么,你改变了@ {{

<li ng-repeat="message in messages">
<< message.body >>
</li>

希望它有助于某人