是否可以在Angular JS

时间:2018-02-18 18:40:39

标签: php angularjs

我需要在Angular JS Script中设置一个PHP Session变量,因为如果我尝试在php中传递一个angualr变量,我会得到很多错误和问题......那么,有什么方法可以存档这个?

<?php
   $placeBean = "{{masterCtrl.getLastplace();}}";
   $manualPlaceBean = 6;
?>

如果我写了这个,变量,在$ placeBean中正确设置,如果我尝试在php函数中传递它,它将无效,但如果我手动设置$ placeBean,则为masterCtrl.getLastplace的值(),一切都会奏效。

另一件事,我注意到如果我var_dump两个变量,我得到不同的输出(相同的文本,不同的长度),而如果我做$ placeBean和$ manualPlaceBean的回声,我得到相同的值。 如果我使用addcslashes($ placeBean,'A..z'),我会得到这个:{{\ m \ a \ s \ t \ e \ r \ C \ t \ r \ l \ l。\ g \ e \吨\大号\一个\ s \吨\ p \升\一个\ C \ E();}}

编辑1

我写了这个 //placeSession.php

<?php
  $buffer = $_POST['lastPlace'];
  $_SESSION['lastPlace'] = $buffer;
?>

// AngularController

app.factory('placeSession', function($resource) {

    var setData = function(place) {
        // Angular $http() and then() both return promises themselves
        return $resource('./PHP/session/placeSession.php').
               save({ lastPlace: place }).
               $promise.then(function(res) {
              console.log(res);
            }).catch(function (err) {
              console.log(err);
           });
    };

    return { setData: setData };
});
app.controller('PlaceController', function(placeSession) {
    this.saveSelection = function(value){
        placeSession.setData(value);
    }
});

res输出是:

  

资源{0:“C”,1:“i”,2:“a”,3:“o”,4:“”,5:“”,6:“&lt;”,7:   “b”,8:“r”,9:“”,10:“/”,11:“&gt;”,12:“↵”,13:“&lt;”,14:“b”,15:   “&gt;”,16:“F”,17:“a”,18:“t”,19:“a”,20:“l”,21:“”,22:“e”,   23:“r”,24:“r”,25:“o”,26:“r”,27:“&lt;”,28:“/”,29:“b”,30:   “&gt;”,31:“:”,32:“”,33:“”,34:“U”,35:“n”,36:“c”,37:“a”,   38:“你”,39:“g”,40:“h”,41:“t”,42:“”,43:“E”,44:“r”,45:   “r”,46:“o”,47:“r”,48:“:”,49:“”,50:“C”,51:“a”,52:“l”,   53:“l”,54:“”,55:“t”,56:“o”,57:“”,58:“你”,59:“n”,60:   “d”,61:“e”,62:“f”,63:“i”,64:“n”,65:“e”,66:“d”,67:“”,   68:“f”,69:“你”,70:“n”,71:“c”,72:“t”,73:“i”,74:“o”,75:   “n”,76:“”,77:“d”,78:“e”,79:“b”,80:“u”,81:“g”,82:“”,   83:“t”,84:“o”,85:“”,86:“c”,87:“o”,88:“n”,89:“s”,90:   “o”,91:“l”,92:“e”,93:“(”,94:“)”,95:“”,96:“i”,97:“n”,   98:“”,99:“D”,......} 0:“C”1:“i”2:“a”3:“o”4:“”5:“”6:“&lt;”7:“ b“8:   “r”9:“”10:“/”11:“&gt;”12:“↵”13:“&lt;”14:“b”15:“&gt;”16:“F”17:“a” 18:   “t”19:“a”20:“l”21:“”22:“e”23:“r”24:“r”25:“o”26:“r”27:“&lt;”28:   “/”29:“b”30:“&gt;”31:“:”32:“”33:“”34:“U”35:“n”36:“c”37:“a”38:   “你”39:“g”40:“h”41:“t”42:“”43:“E”44:“r”45:“r”46:“o”47:“r”48:   “:”49:“”50:“C”51:“a”52:“l”53:“l”54:“”55:“t”56:“o”57:“”58:   “你”59:“n”60:“d”61:“e”62:“f”63:“i”64:“n”65:“e”66:“d”67:“”68:   “f”69:“你”70:“n”71:“c”72:“t”73:“i”74:“o”75:“n”76:“”77:“d”78:   “e”79:“b”80:“你”81:“g”82:“”83:“t”84:“o”85:“”86:“c”87: “○” 88:   “n”89:“s”90:“o”91:“l”92:“e”93:“(”94:“)”95:“”96:“i”97:“n”98:   “”99:“D”100:“:”101:“\”102:“E”103:“a”104:“s”105:“y”106:“P”107:   “H”108:“P”109:“ - ”110:“D”111:“e”112:“v”113:“s”114:“e”115:   “r”116:“v”117:“e”118:“r”119:“ - ”120:“1”121:“7”122:“\”123:   “e”124:“d”125:“s”126:“ - ”127:“w”128:“w”129:“w”130:“\”131:   “a”132:“n”133:“g”134:“u”135:“l”136:“a”137:“r”138:“W”139:   “e”140:“b”141:“B”142:“o”143:“o”144:“k”145:“\”146:“P”147:   “H”148:“P”149:“\”150:“s”151:“e”152:“s”153:“s”154:“i”155:   “o”156:“n”157:“\”158:“p”159:“l”160:“a”161:“c”162:“e”163:   “S”164:“e”165:“s”166:“s”167:“i”168:“o”169:“n”170:“。”171:   “p”172:“h”173:“p”174:“:”175:“5”176:“↵”177:“S”178:“t”179:   “a”180:“c”181:“k”182:“”183:“t”184:“r”185:“a”186:“c”187:   “e”188:“:”189:“↵”190:“#”191:“0”192:“”193:“{”194:“m”195:   “a”196:“i”197:“n”198:“}”199:“↵”200:“”201:“”202:“t”203:   “h”204:“r”205:“o”206:“w”207:“n”208:“”209:“i”210:“n”211:“   “212:”&lt;“213:”b“214:”&gt;“215:”D“216:”:“217:”\“218:”E“219:”a“220:   “s”221:“y”222:“P”223:“H”224:“P”225:“ - ”226:“D”227:“e”228:   “v”229:“s”230:“e”231:“r”232:“v”233:“e”234:“r”235:“ - ”236:   “1”237:“7”238:“\”239:“e”240:“d”241:“s”242:“ - ”243:“w”244:   “w”245:“w”246:“\”247:“a”248:“n”249:“g”250:“u”251:“l”252:   “a”253:“r”254:“W”255:“e”256:“b”257:“B”258:“o”259:“o”260:   “k”261:“\”262:“P”263:“H”264:“P”265:“\”266:“s”267:“e”268:   “s”269:“s”270:“i”271:“o”272:“n”273:“\”274:“p”275:“l”276:   “a”277:“c”278:“e”279:“S”280:“e”281:“s”282:“s”283:“i”284:   “o”285:“n”286:“。”287:“p”288:“h”289:“p”290:“&lt;”291:“/”292:   “b”293:“&gt;”294:“”295:“o”296:“n”297:“”298:“l”299:“i”300:   “n”301:“e”302:“”303:“&lt;”304:“b”305:“&gt;”306:“5”307:“&lt;”308:   “/”309:“b”310:“&gt;”311:“&lt;”312:“b”313:“r”314:“”315:“/”316:   “&gt;”317:“↵”$ promise:d {$$ state:{...}} $ resolved:true__proto __:Object

2 个答案:

答案 0 :(得分:1)

您应该向服务器发出ajax请求(在任何php文件上),然后您可以设置会话或运行您想要的任何PHP代码,作为回报,您可以发回会话值。

答案 1 :(得分:0)

看一下AngularJS $resource('/api/post-route/post.php') .save({ myData: true }) .$promise .then(function (response) { // Do something with the response }) .catch(function (err) { // Handle error }); https://docs.angularjs.org/api/ngResource/service/ $资源

您可以使用以下内容轻松地POST到您的PHP代码:

$resource

显然,Pair<T,K>初始调用中的路由名称会有所不同,您发送的数据也会不同,但这是基本模式。这是你做的建议的唯一方法。