Angular JS使用ngInit定义变量

Angular JS Defining a Variable with ngInit

本文关键字:定义 变量 ngInit 使用 JS Angular      更新时间:2023-09-26

基本上,我将一个变量从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 ?>">

然而,在我的angular 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 };

控制器的构造函数在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 };