При установке свойства 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' ),
});