Angularjs 指令中未定义变量,作用域独立

Angularjs 指令中未定义变量,作用域独立,angularjs,Angularjs,我创建了一个具有独立作用域的指令。selectedcontractguid通过html传递给指令 在指令中输入console.log$scope时,它会显示selectedcontractguid以及正确的guid 但当我尝试访问指令控制器中的$scope.selectedcontractguid时,它记录为未定义 有人知道为什么吗?请看下面的例子 <instalments-box selectedcontractguid="instalment.contract.guid"> &l

我创建了一个具有独立作用域的指令。selectedcontractguid通过html传递给指令

在指令中输入console.log$scope时,它会显示selectedcontractguid以及正确的guid

但当我尝试访问指令控制器中的$scope.selectedcontractguid时,它记录为未定义

有人知道为什么吗?请看下面的例子

<instalments-box selectedcontractguid="instalment.contract.guid"> </instalments-box>

angular.module('app')
.directive('instalmentsBox', ['InstalmentService', function(InstalmentService) {
    return {
        templateUrl:'scripts/directives/contracts/instalments-box.html?v='+window.app_version,
        restrict: 'E',
        scope: {
            selectedcontractguid: '='
        },
        controller: function($scope) {
            console.log($scope.selectedcontractguid);
        }
    }
}]);

试试这一款可能是$watch帮助您:

angular.module('app')
.directive('instalmentsBox'['InstalmentService', function(InstalmentService) {
    return {
     templateUrl:'scripts/directives/contracts/instalments-box.html?v='+window.app_version,
        restrict: 'E',
        scope: {
            selectedcontractguid: '=selectedcontractguid'
        },
        controller: function($scope,$watch) {
          $scope.$watch('selectedcontractguid', function (watch) {
            console.log(watch);
          })
        }
    }
}]);

您如何在控制器中设置分期付款.contract.guid?谢谢,它对我有用,请您解释一下。为什么我要监视它?有时在angularJs中,$scope会创建一个对象的多个实例,所以$watch会监视所有这些实例。因此,很多时候您需要监视指令中的对象