2014-09-24 2 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. Если вы думаете об этом, то контроллер $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 }; 
Смежные вопросы