$ scope不返回任何值

时间:2015-03-25 05:23:37

标签: javascript angularjs

我正在尝试访问控制器内的$ scope变量。当我控制我的$ scope时它会显示多少个值,但是当我尝试通过$ scope访问它时。它返回undefined。

我附上$ scope

的截屏

enter image description here

在这里你可以看到它有$ id,$ parent,templateUrl,但是当我试图通过$ scope.id,$ scope.parent,$ scope.templateUrl访问它时,它返回undefined。

已编辑:

我正在尝试访问模板网址。实际上我想用模板url附加一些参数,以便我可以在后端函数中获取它们

这是我的代码:

brainframeApp.config(
    ['$interpolateProvider', '$locationProvider', '$httpProvider', '$routeProvider',
    function($interpolateProvider, $locationProvider, $httpProvider,
    $routeProvider) {
        //configuring angularjs symbos to not to conflict with Django template symbols
        $interpolateProvider.startSymbol('{$');
        $interpolateProvider.endSymbol('$}');
        //$locationProvider.html5Mode(true).hashPrefix('!');
        // setup CSRF support
        $httpProvider.defaults.xsrfCookieName = 'csrftoken';
        $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
        console.log("TestDavy: App");
        //The route provider
        $routeProvider.
          when('/', {
            templateUrl: '/static/engine/partials/listbrainframes.html',
            controller: 'brainframeCtrl'
          }).
          when('/brainframe/', {
            templateUrl: '/views/post.html',
            controller: 'brainframeCtrlx'
          }).
          when('/brainframe/:id', {
            templateUrl: '/views/post.html',
            controller: 'brainframeCtrlx'
          }).
          otherwise({
            redirectTo: '/'
          });
}]);

我的控制器:

brainframeAppControllers.controller('brainframeCtrlx', 
    ['$scope', '$routeParams', function($scope, $routeParams) {
        //console.log($scope.parent);
        //$scope.templateUrl = 'views/post.html?id='+$routeParams.id;
    //console.log($scope);
    $scope.templateUrl = 'views/post.html?id='+$routeParams.id;
    //console.log($scope.templateUrl);
}]);

1 个答案:

答案 0 :(得分:1)

当我在$scope上放置console.log时,我只能看到这些属性:

["$$childTail", "$$childHead", "$$nextSibling", "$$watchers", "$$listeners", "$$listenerCount", "$id", "$$ChildScope", "$parent", "$$prevSibling"]

如果您想访问控制器内的模板URL:

brainframeApp.run(function($rootScope) {
    $rootScope.$on( "$routeChangeStart", function(event, next, current) {
       $rootScope.templateUrl = next.$$route.templateUrl;
    });
});

现在在你的控制器中,注入$ rootScope并获取模板URL

$rootScope.templateUrl