Angular不会选择$ scope.variable_name

时间:2017-01-16 04:02:31

标签: javascript angularjs

以下是我的HTML代码。

<div class="container" ng-app="mintcart">
    <div class="panel panel-default" ng-controller="categoriesctrl">
    <input type="hidden" ng-model="session.sid" value="<?php echo session_id();?>"/>
        <div class="panel-body">
            <div class="row">
                <ul class="nav nav-pills">
                    <?php
                    $i = 0;
                    while($i < count($list)){
                        $name = $list[$i]['categoryName'];
                        $id = $list[$i]['id'];
                        $normalUrl = $list[$i]['normalImageUrl'];
                        $hoverUrl = $list[$i]['hoverImageUrl'];
                        if($i == 0){
                            echo "<li role='presentation' class='active' ng-click='loadproducts($id)'><a href='#' >$name</a></li>";
                        } else {
                            echo "<li role='presentation' ng-click='loadproducts($id)'><a href='#''>$name</a></li>";
                        }
                        $i++;
                    }
                    ?>
                </ul>
            </div>
      </div>
   </div>
</div>

以下是我的JS代码。

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

app.controller('categoriesctrl', function($scope, $http){
    var auth = {};
    $http({
      method: 'GET',
      url: baseurl + 'api/get_product_categories'
    }).then(function successCallback(response) {
        $scope.categories = response.data.categories;
        // this callback will be called asynchronously
        // when the response is available
    }, function errorCallback(response) {
        // called asynchronously if an error occurs
        // or server returns response with an error status.
    });

    $scope.loadproducts = function(item_id) {
        alert($scope.session.sid);
        $http({
          method: 'GET',
          url: baseurl + 'api/get_items_in_category_cart/' + item_id
        }).then(function successCallback(response) {
            $scope.items = response.data.products;
            // this callback will be called asynchronously
            // when the response is available
        }, function errorCallback(response) {
            // called asynchronously if an error occurs
            // or server returns response with an error status.
        });
        //$scope.Language = lang;
    }; 

});

当loadproducts函数调用alert($ scope.session.sid)时;给我“未定义”。我无法理解为什么我的元素没有被拾取。 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

php在服务器端工作,你需要使用不在视图上的javascript来设置变量。

在JavaScript中创建一个变量,获取PHP的返回内容。

var sessionid = <?php echo session_id();?>

然后,您可以访问控制器中的变量

 var app = angular.module("MyApp", []);

app.controller("categoriesctrl", function($scope) {
  $scope.session.sid = sessionid ;
  console.log($scope.session.sid);
});