SC.ImageView выдает ошибку при установке значения - PullRequest
0 голосов
/ 17 апреля 2011

При установке свойства value для подклассового представления изображения SproutCore (SC.ImageView) выдается ошибка времени выполнения:

В Safari и Firefox:

TypeError: Result of expression 'elem.setAttribute' [undefined] is not a function.

В Chrome:

Uncaught TypeError: Object DigDeeper.ZoomLayerView:sc398 has no method 'setAttribute'

Ошибка возникает в /static/sproutcore/foundation/en/current/javascript.js в следующем коде (строка 4735):

// convert the value to a string (all browsers do this but IE) see 
// #1070 (jQuery)
if ( set ) elem.setAttribute( name, "" + value );

Изображение загружено, но не отображается.

Я использую текущую версию sproutcore из рубинового камня (кажется, 1.4.5).

Как я могу решить эту проблему?

Вот источник:

DigDeeper.ZoomTileView = SC.ImageView.extend({

    // Properties
    zoom: null,
    layer: null,
    scaleIndex: null,
    column: null,
    row: null,

    // Overridden properties
    classNames: [ 'zoom-tile-view' ],

    // Computed properties
    scale: function () {
        return Math.pow( 2, this.get( 'scaleIndex' ) );
    }.property( 'scaleIndex' ),

    id: function () {
        return "%@.%@.%@.%@".fmt(
            DigDeeper.ZoomTileView.zeroPad( 0, 5 ),
            DigDeeper.ZoomTileView.zeroPad( this.get( 'scale' ), 0 ),
            DigDeeper.ZoomTileView.zeroPad( this.get( 'column' ), 0 ),
            DigDeeper.ZoomTileView.zeroPad( this.get( 'row' ), 0 )
        );
    }.property('layer','scaleIndex','column','row').cacheable(),

    value: function () {
        return "/static/dig_deeper/en/current/resources/images/%@.png".fmt( this.get( 'id' ) );
    }.property( 'id' ),

});

Ответы [ 2 ]

1 голос
/ 26 апреля 2011

У вас есть запятая в вашем методе значений.

Удаление может решить вашу проблему.

0 голосов
/ 19 апреля 2011

Как выглядит ваш дизайн SC.ImageView?Вот пример того, что я делаю, чтобы вызвать небольшой индикатор прогресса, когда обрабатывается очень длинный серверный вызов:

validateProgressImage: SC.ImageView.design({
  layout: { top: 63, left: 150, height: 16, width: 16 },    
  value: sc_static("images/ajax-loader.gif"),
  canLoadInBackground: true,
  useCanvas: NO,
  useImageQueue: NO,
  isVisible: YES
}),

Мой файл ajax-loader.gif находится в моей папке resources / images.

...