角度范围问题

时间:2014-05-01 09:36:18

标签: angularjs scope directive

我对Angular中的范围有疑问。

我有一个指令:

skillFoundry.directive('myPromotioncode', function(){
    return {
      restrict: 'E',
      transclude: true,
      scope: {
        'close': '&onClose'
      },
      templateUrl: '/templates/my-promotioncode-close.html'
    };
});

在我的控制器下我有以下" HTML" (玉)

my-promotioncode.promotion_code(ng-hide="dialogIsHidden" on-close="hideDialog()")
  div.row 
   | Please enter your promotion code:
  div.col-xs-4    
    input.form-control(type="text", ng-model="promotionCode")
    {{promotionCode}}
  div.col-xs-4    
    a.btn-primary.btn-sm(ng-click="promotionCodeSubmit(promotionCode)") Submit

在我的控制器中,这个功能:

$scope.promotionCodeSubmit = function(theCode) {
    console.log("promotion code submit called !", this);
    var promotionCode = theCode;
    console.log("The promotion code is:" + promotionCode);
};

该函数按原样工作,但$scope.promotionCode始终未定义。我不应该将promoteCode的值传递给函数。我的理解是transclude使当前范围可用于此控制器和正在进行的控制器吗?

为什么$scope.promotionCode未定义?

修改

我意识到这个问题不清楚并且已经重述,函数$scope.promotionCodeSubmit的工作方式如上所述,但是,什么也应该有效,但不是以下内容:

$scope.promotionCode = ""; /* init to something */

$scope.promotionCodeSubmit = function() {
    console.log("promotion code submit called !", this);
    var promotionCode = $scope.promotionCode;
    console.log("The promotion code is:" + promotionCode);
};

$scope.promotionCode没有被正确绑定,或者有一个"范围"问题,因为它在控制器内不是预期的。

0 个答案:

没有答案