javascript - 无法访问 Angular JS Controller 中的 $scope 属性?

标签 javascript angularjs

我的 Angular 应用程序中有以下简单 Controller

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);

 }

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

enter image description here

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

最佳答案

可能是时间问题。当 $scope.target 没有被设置时,您会立即 console.logging 值,直到 $watch 语句触发。它很可能是在它记录到控制台并展开它时设置的,但不是在它到达第一个日志时设置的。

关于javascript - 无法访问 Angular JS Controller 中的 $scope 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22020978/

相关文章:

javascript - 编辑表单不更新

javascript - AngularJS - URL 更改时不调用工厂

javascript - Angular JS : processing promises in order (without chaining)

javascript - Angular 输入指令在 IE8 和 IE9 中无法按预期工作

javascript - AngularJS URL 通过 $locationProvider.html5Mode(true) 进行转义

javascript - ngCache与Webpack,ES6不输出模板html,解析错误

javascript - 点击清除内容

javascript - 有没有办法改变(或设置)世博会地点的真北?

javascript - 将数组的字段与javascript中具有不同长度的另一个数组合并

javascript - Postgres 更新插入的值而不是所有列