我正在使用Google封闭online compiler来获取libphonenumber。这是编译器代码:
// ==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不是函数,第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 $元数据不是函数?
答案 0 :(得分:0)
此提交中删除了set$Metadata
方法:https://github.com/google/closure-library/commit/d49d52de4577aea38dd0d3ec76a931c2f551dbf3
答案 1 :(得分:0)
由于Google将代码移至Github,然后使用Google online closure compiler中的以下代码获取最新代码:
// ==ClosureCompiler==
// @compilation_level SIMPLE_OPTIMIZATIONS
// @output_file_name libphonenumber.js
// @use_closure_library true
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonemetadata.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumber.pb.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/metadata.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/phonenumberutil.js
// @code_url https://github.com/googlei18n/libphonenumber/raw/master/javascript/i18n/phonenumbers/asyoutypeformatter.js
// ==/ClosureCompiler==