2014-09-24 85 views
0

基本上我從PHP發送一個變量到Angular JS。我將PHP變量回顯到ng-init標記中,並正確呈現(ng-init =「listing = 5; user = 59」)。Angular JS用ngInit定義變量

<div id="content" ng-app="galleryApp" ng-controller="galleryController" 
    ng-init="listing=<?php echo $lid ?>;user=<?php echo $sessionUser ?>"> 

但是,在我的角JS代碼中,當我記錄變量時,他們出現未定義。

var galleryApp = angular.module('galleryApp', []); 

function galleryController ($scope, $http, $log) { 

    console.log($scope.listing); // <-- undefined 
    console.log($scope.user); // <-- undefined 

    var postData = { listing : $scope.listing, user: $scope.user }; 

回答

1

控制器的構造函數在ng-init之前調用。如果你仔細想想,在ng-init可以添加東西之前,控制器的$scope必須存在。

如果添加$watch到控制器的範圍屬性,如果所有設置正確,你應該看到它改變:

function galleryController ($scope, $http, $log) { 

    $scope.$watch('listing', function(value) { console.log(value); }); 
    $scope.$watch('user', function(value) { console.log(value); }); 

    var postData = { listing : $scope.listing, user: $scope.user };