为什么AngularJS在定义时会在指令中显示范围变量未定义?

Saq*_*Ali -2 javascript angularjs angularjs-directive angularjs-scope

我有一个angularJS指令,通过以下方式调用:

<rpt-closing closing-begin-ts="null" closing-begin-ts="'2014-11-25 23:59:59'"></rpt-closing>
Run Code Online (Sandbox Code Playgroud)

指令代码如下:

  .directive('rptClosing',function(){
      return {
        restrict:'E',
        scope: {
          closingBeginTs: '=',
          closingEndTs: '='
        },
        link: function(scope, element, attrs) {
          console.log('*******************************************');
          console.log('scope = ', scope);
          console.log('scope.closingBeginTs = ', scope.closingBeginTs);
          console.log('scope.closingEndTs = ', scope.closingEndTs);
          console.log('*******************************************');
        },
        template: '<div>BLAH BLAH BLAH</div>'
      };
    }
  )
Run Code Online (Sandbox Code Playgroud)

这段代码在jsFiddle中运行得非常好.我能看到的价值scope.closingBeginTs,并scope.closingEndTs在控制台输出.

在此输入图像描述

BMc*_*McV 6

它记录为未定义,因为它未定义.在您提供的代码段中,两个属性都是closing-begin-ts.

<rpt-closing closing-begin-ts="null" 
             closing-begin-ts="'2014-11-25 23:59:59'">  
</rpt-closing>
Run Code Online (Sandbox Code Playgroud)

当然应该是:

<rpt-closing closing-begin-ts="null" 
             closing-end-ts="'2014-11-25 23:59:59'">  
</rpt-closing>
Run Code Online (Sandbox Code Playgroud)