Просмотр исходного кода

also support PascalCased assets

Evan You 10 лет назад
Родитель
Сommit
68e0b35d2b
2 измененных файлов с 9 добавлено и 2 удалено
  1. 5 2
      src/util/options.js
  2. 4 0
      test/unit/specs/util/options_spec.js

+ 5 - 2
src/util/options.js

@@ -341,13 +341,16 @@ exports.mergeOptions = function merge (parent, child, vm) {
 
 exports.resolveAsset = function resolve (options, type, id) {
   var camelizedId = _.camelize(id)
-  var asset = options[type][id] || options[type][camelizedId]
+  var pascalizedId = camelizedId.charAt(0).toUpperCase() + camelizedId.slice(1)
+  var assets = options[type]
+  var asset = assets[id] || assets[camelizedId] || assets[pascalizedId]
   while (
     !asset && options._parent &&
     (!config.strict || options._repeat)
   ) {
     options = options._parent.$options
-    asset = options[type][id] || options[type][camelizedId]
+    assets = options[type]
+    asset = assets[id] || assets[camelizedId] || assets[pascalizedId]
   }
   return asset
 }

+ 4 - 0
test/unit/specs/util/options_spec.js

@@ -317,6 +317,9 @@ describe('Util - Option resolveAsset', function () {
         },
         camelCasedComponent: {
           template: 'yo'
+        },
+        PascalCasedComponent: {
+          template: 'ho'
         }
       }
     })
@@ -325,6 +328,7 @@ describe('Util - Option resolveAsset', function () {
   it('resolves', function () {
     expect(resolveAsset(vm.$options, 'components', 'hyphenated-component')).toBeTruthy()
     expect(resolveAsset(vm.$options, 'components', 'camel-cased-component')).toBeTruthy()
+    expect(resolveAsset(vm.$options, 'components', 'pascal-cased-component')).toBeTruthy()
   })
 
 })