2017-02-24 1 views
1

Wie kann ich AngularJS Controller-Variable in PHP-Klausel erhalten?Laravel 5 - Get AngularJS Controller-Variable in PHP-Klausel

Ich versuchte <?php $user = User::find({{ message.from_id }})?>, aber es funktioniert nicht.

message.blade.php

<div ng-repeat="message in current.messages"> 

    <?php $user = User::find({{ message.from_id }})?> //not works 

    <div> 
     <span>User @{{ message.from_id }}</span> //it works 
    </div> 
</div> 

Antwort

1

Beim Erstellen Winkelmodul, die Zeitänderung Winkel Syntax wie folgt:

angular.module("moduleName",[],function($interpolateProvider)  
{ 
    $interpolateProvider.startSymbol("<%"); 
    $interpolateProvider.endSymbol("%>"); 
}) 

jetzt können Sie Winkel Zugriff mit <% $scope.VarNm %> oder <% VarNm %> in blade.php

und Verwenden Sie in Ihrem Fall wie

<?php 
    $id = "<%message.from_id%>"; 
    $user = User::find($id) 
?> 
+0

hmm unberührt bleiben ... aber wie kann ich es hinzufügen? Soll ich .module mit ng -... zuweisen? –

+1

Ja. Wenn Sie Ihr App-Modul für diesen Zeitraum erstellen, übergeben Sie $ interpolateProvider und ändern Sie die Standardsyntax. –

+0

Ich bin ein Anfänger in AngularJS. Ich habe einen Controller und Funktionen, die bereits ausgeführt werden. Ich weiß nicht, ob ich das verstehe. In diesem Fall muss ich alle AngularJS-Controller auf den AngularJS-Modulen ändern, wenn ich $ interpolateProvider verwenden möchte. –

0

können Sie das @ Symbol verwenden, um das Blade-Rendering-Engine ein Ausdruck zu informieren, soll

<div ng-repeat="message in current.messages"> 
    {{ $user_id = @{{ message.from_id }} }} 
    {{ $user = User::find($user_id) }} 
</div> 
+0

Es funktioniert nicht –

+1

Die PHP-Variable würde nur einmal zugewiesen werden, während die Seite gerendert wird und nicht wie JavaScript-Variablen neu zugewiesen werden – linktoahref