错误:未捕获的TypeError:Vue.util.hyphenate不是函数

时间:2017-03-03 11:42:22

标签: vue.js

我试图用onsen ui设置vuejs,我收到此错误:

  

错误:未捕获的TypeError:Vue.util.hyphenate不是函数

以下是整个代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/onsen/2.1.0/css/onsenui.css">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/onsen/2.1.0/css/onsen-css-components.min.css">
  <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.2.1/vue.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/onsen/2.1.0/js/onsenui.js">        </script>
  <script src="https://unpkg.com/vue-onsenui@2.0.0-alpha.0"></script>
</head>
<body>
  <div id="app"></div>
</body>
<script>
  var vm = new Vue({
    el: '#app',
    template:
      '<v-ons-page>\
         <v-ons-toolbar>\
           <div class="center"> Title </div>\
         </v-ons-toolbar>\
         <p style="text-align: center">\
           <v-ons-button @click="$notification.alert(\'Hello World!\')">Click</v-ons-button>\
         </p>\
       </v-ons-page>'
  });
</script>
</html>

我发现这不是一个已知问题。我也尝试使用旧版本的od vue,如2.0.0。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

先生,我遇到了同样的错误,我试图找到错误并解决它。 首先,下载&#34; https://unpkg.com/vue-onsenui@2.0.0-alpha.0&#34;,然后将脚本dom的src更改为您当地的src。 然后你可以打开&#34; vue-onsenui@2.0.0-alpha.0"并找到这些代码:

&#13;
&#13;
var register = function register(Vue, type, items) {
	  (0, _keys2.default)(items).forEach(function (key) {
	    var value = items[key];
	    key = Vue.util.hyphenate(key);
	    Vue[type](key, value);
	  });
	};
&#13;
&#13;
&#13;

所以你可以看到&#34; Vue.util.hyphenate&#34; ,但现在vue没有这个功能。请使用此文件中的相同功能。

例如:

&#13;
&#13;
var register = function register(Vue, type, items) {
	  (0, _keys2.default)(items).forEach(function (key) {
	    var value = items[key];
	    var hyphenate = function hyphenate(string) {
	  		return string.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
		};
	    key = hyphenate(key);
	    Vue[type](key, value);
	  });
	};
&#13;
&#13;
&#13;

我的英语非常糟糕,很抱歉使用你的时间。

答案 1 :(得分:1)

在上一个版本中,Vue.js已删除Vue.util上的许多公开方法和属性。

因此,您需要下载javascript文件(https://unpkg.com/vue-onsenui@2.0.0-alpha.0)并替换67行中的代码:

key = Vue.util.hyphenate(key);

到此代码:

key = key.replace(/([a-zA-Z])([A-Z])/g, '$1-$2').toLowerCase();