2014-02-06 2 views
3

Я получаю сообщение об ошибке Expected identifier, string or number в IE8 referring to line 17 character 21 следующего кода:IE8: Ожидаемый идентификатор, строка или число

define(
    [ 
     "underscore" 
    , "Backbone" 
    , "text!assetListingTemplate" 
    ] 
, function(_, Backbone, template) { 
     "use strict"; 

     var tmpl = _.template(template); 
     var AssetListing = Backbone.View.extend({ 
      tagName: "li" 

     , attributes: function() { 
       return { 
        id: this.model.cid 
       , class: this.model.get("type") 
       }; 
      } 

     , render: function() { 
       this.el.innerHTML = tmpl(this.model.attributes); 
       return this.el; 
      } 
     }); 

     return AssetListing; 
    } 
); 

Который является:

, class: this.model.get("type") 

Эта ошибка, как правило, из-за завершающего coma в Object или аналогичные мелкие проблемы с форматированием, которые IE не обрабатывает изящно. Возможно, я слишком долго смотрел на код, но я не вижу таких проблем здесь, у меня даже есть JSLinted, и он не смог найти никаких проблем, кроме как не согласиться с моим стилем.

Ошибка не this.model, поскольку она все еще встречается, если я заменяю все экземпляры ее для регулярных строк.

Может ли любой глаз орла определить, что здесь происходит не так?

ответ

3

Это не нравится class поскольку класс является future reserved word, как определить в ECMAScript2

Положите class в кавычки "class"

attributes: function() { 
       return { 
        id: this.model.cid 
       , "class": this.model.get("type") 
       }; 
      } 
+0

Ах, я вижу, зарезервированное слово ... может из уже на весь день Благодарю. –

+0

@GeorgeReith Я рад помочь! И я провел весь день на этом раньше! –

Смежные вопросы