我是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>
提前致谢。
答案 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>
希望它有助于某人