Javascript 模板抛出-未捕获类型错误:无法调用方法';匹配';未定义的

Javascript 模板抛出-未捕获类型错误:无法调用方法';匹配';未定义的,javascript,jquery,html,templates,Javascript,Jquery,Html,Templates,我的html中有以下模板 <script id="mapview-tpl" type="text/x-handlebars-template"> <div class='header'><a href='#' class="button header-button header-button-left">Back</a><h1>Map</h1></div> <div class='details'>

我的html中有以下模板

<script id="mapview-tpl" type="text/x-handlebars-template">
<div class='header'><a href='#' class="button header-button header-button-left">Back</a><h1>Map</h1></div>
 <div class='details'>
    <script type="text/javascript">
        function initialize() {
            var mapOptions = {
            center: new google.maps.LatLng(-34.397, 150.644),
            zoom: 8
            };
            var map = new google.maps.Map(document.getElementById("map-canvas"),
                mapOptions);
        }
        google.maps.event.addDomListener(window, 'load', initialize);
        </script>
<div id="map-canvas"/>


</div>
当到达上述函数的末尾时,将抛出以下错误
uncaughttypeerror:无法调用未定义的方法“match”
hmm

======

补充 我忘了补充一点,这个错误只在(this.mapsURL)被称为means时抛出,它只会在

match = hash.match(this.mapsURL);
    if (match) {

        this.store.findById(Number(match[1]), function(employee) {
            self.slidePage(new MapView(employee).render());
        });
    }

被称为。如果上面的If工作正常

对于这种情况,我通常使用
test
,在
未定义的
值的情况下更安全:
(this.detailsURL).test(hash)
(this.mapsURL).test(hash)


在您的情况下,我也会检查
散列值以了解发生了什么:如果没有散列,它应该是“”,但它甚至不是
未定义的
-否则它应该输入您的第一个条件并返回我猜。

傻我!!!发现这可能是无法编译的模板的“通用”错误,在我的例子中,模板名称定义错误!谢谢

散列
可能未定义。而且没有
未定义的
匹配
。添加一个
hash=hash==未定义?“”:散列
match = hash.match(this.mapsURL);
    if (match) {

        this.store.findById(Number(match[1]), function(employee) {
            self.slidePage(new MapView(employee).render());
        });
    }