指令没有正确获取属性

时间:2016-03-22 14:37:15

标签: javascript angularjs angularjs-directive angularjs-scope

我有一个包含jQuery FullCalendar插件的指令。

这就是我使用指令

的方法
<div sg-calendar
         format-column-header-month='dddd'
         format-column-header-week='ddd/dd'
         format-column-header-day='dddd/dd'
         format-calendar-header-month='MMM, yyyy'
         format-calendar-header-day='MMM dd, yyyy'
         format-calendar-header-week-start='MMM dd'
         format-calendar-header-week-end='-MMM dd, yyyy'
         event-endpoint='REST/CalendarActivity'
         event-fetch-endpoint='someRestUrl'
         app-init-url='someRestUrl'
         service-data-mintime='minTime'
         service-data-maxtime='maxTime'
         default-view='agendaDay'
         width='100%'>
    </div>

这是我在指令

中的范围定义
scope: {
  // Configures the header in month mode.
  formatColumnHeaderMonth: '@',
  // Configures the header in week mode.
  formatColumnHeaderWeek: '@',
  // Configures the header in day mode.
  formatColumnHeaderDay: '@',
  // Configures the calendar header in month mode.                    
  formatCalendarHeaderMonth: '@',
  // Configures the calendar header in day mode
  formatCalendarHeaderDay: '@',
  // Configures the calendar header for start of week mode
  formatCalendarHeaderWeekStart: '@',
  // Configures the calendar header for end of week mode
  formatCalendarHeaderWeekEnd: '@',
  appInitUrl: '@',
  eventEndpoint: '@',
  eventFetchEndpoint: '@',
  serviceDataMintime: '@',
  serviceDataMaxtime: '@',
  width: '@',
  defaultView: '@',
  height: '@'
},

这是我在devTools上的attrs对象

enter image description here

我强调该属性的原因是因为在我的范围定义和用法中我有

 format-calendar-header-week-start='MMM dd'

formatCalendarHeaderWeekStart: '@',

但是,你可以在attrs中看到属性名称是

formatCalendarHeaderWeek:"MMM dd"

您可以注意到它最后缺少开始字样。

如果我这样做

scope.formatCalendarHeaderWeekscope.formatCalendarHeaderWeekStart我在两种情况下都未定义。其余属性工作正常。

命名属性或任何长度限制是否有限制? 为什么缺少属性名称的最后一部分?

我搜索了formatCalendarHeaderWeekformatCalendarHeaderWeekStart,但他们并未在其他任何地方使用过。

谢谢,

1 个答案:

答案 0 :(得分:1)

我在另一个SO问题中找到了answer。 (我想这是重复的,对吗?)

  

This was broken in 1.2.最好将属性重命名为   别的东西,继续前进。