我正在为 libphonenumber使用 Google 闭包在线编译器。这是编译器代码:
// ==ClosureCompiler==
// @output_file_name default.js
// @compilation_level SIMPLE_OPTIMIZATIONS
// @use_closure_library true
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/metadatalite.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url http://libphonenumber.googlecode.com/svn/trunk/javascript/i18n/phonenumbers/asyoutypeformatter.js
// ==/ClosureCompiler==
这编译成功,但是当我在 html 中包含编译的 js 文件时,它会给出错误:undefined is not a function,第 196 行
我怀疑它与goog.require('goog.proto2.Message'); ,但到目前为止还没有运气。
最终目标是进行电话号码验证,如下所示:
var phoneUtil = i18n.phonenumbers.PhoneNumberUtil.getInstance();
var number = phoneUtil.parseAndKeepRawInput('1234567899', 'XX');
var isNumberValid = phoneUtil.isValidNumber(number);
如何解决TypeError: goog.proto2.Message.set$Metadata is not a function?