Angular JS使用ngInit定义变量

时间:2014-09-24 15:57:25

标签: javascript php angularjs

基本上我是从PHP向Angular JS发送一个变量。我将PHP变量回显到ng-init标记中,并且它正确呈现(ng-init =“listing = 5; user = 59”)。

<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 个答案:

答案 0 :(得分:1)

ng-init之前调用控制器的构造函数。如果您考虑一下,控制器的$scope必须在ng-init添加内容之前存在。

如果您向控制器范围内的属性添加$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 };