2015-02-12 80 views
0

我有一個包含一些奇怪的字符,引用一個類似的長字符串:消毒變量在PHP中AngularJS

xxxxxxxxxxxxxxxxxxxxxxxxxxxxdewhriho「shfihewr32」 fhihifhewt43t [sdfhiort] sfhishf「GG」 fhdif

它的一部分對象我在我的腳本開始時創建的PHP文件中,它以字符串形式存儲在$ song-> lyrics屬性中。我試着將它傳遞給我的AngularJS控制器通過此:

<div ng-controller="lyricsMod" ng-init="songInit('<?php echo $song->lyrics')"> 

這是我的AngularJS控制器:

displaySong.controller('lyricsMod', ['$scope', function($scope) { 
//Set up initial scopes: 
$scope.songInit = function(songLyrics) { 
    $scope.lyrics = songLyrics; 
} 

但我不斷收到來自AngularJS這個錯誤:

Error: [$parse:lexerr] 
https://docs.angularjs.org/error/$parse/lexerr?p0=Unterminated 

我已嘗試在字符串上使用mysqli_real_escape_string無濟於事。當AngularJS碰到字符串中的第一個引號時,錯誤似乎就會發生。我讀過你需要對字符串進行清理,但我不知道如何清理PHP或HTML中的字符串。對不起,如果這是一個noob問題,Ijust開始學習AngularJS。有沒有更好的做法將我的PHP變量傳遞到AngularJS中,或者我在這裏丟失了什麼?

+0

你有沒有嘗試看看[ngSanitize](https://docs.angularjs.org/api/ngSanitize) – uniquerockrz 2015-02-12 03:56:55

回答

1

你沒有關閉你的PHP代碼塊(你錯過了?>)。

而且,我相信它需要JSON編碼的插入JS(這也將不需要用引號將PHP塊),以及HTML實體化以插入HTML ATTR:

<div ng-controller="lyricsMod" ng-init="songInit(<?php echo htmlentities(json_encode($song->lyrics)); ?>)">