繁体   English   中英

无法在Angular JS Controller中访问$ scope属性?

[英]Can't Get To $scope Property in Angular JS Controller?

我的Angular应用中有以下简单控制器

vehicleSearchApp.controller('VehicleSearchCtrl', function ($scope, $location){

     $scope.location = $location;
     $scope.$watch('location.search()', function() {
         $scope.target = ($location.search()).target;
     }, true);

     $scope.changeTarget = function(name) {
         $location.search('target', name);
     }

     console.log($scope.target);
     console.log($scope);

 }

控制器底部的第一个控制台日志语句返回未定义,但是第二个控制台日志语句返回一个如下所示的对象:

在此处输入图片说明

我在此对象中看到了“目标”属性以及许多其他方法/属性。 如果尝试使用“ console.log($ scope.target)”进行打印,为什么会在控制台中收到“未定义”消息?

可能是时间问题。 在未设置$ watch语句之前,您正在console.logging记录$ scope.target的值。 它很可能是在它登录到控制台时设置的,您可以对其进行扩展,但是在到达第一个日志时就没有设置。

这是一个时序问题:您看到undefined因为当代码到达log语句时, $scope.target尚不可用。

您可以将batarang插件安装到chrome浏览器中,以检查$scope元素的值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM