2016-05-09 12 views
0

jsrenderを使用してグリッド内のテンプレートをマップしています。私は条件は以下のような、エラー:view.hlp(...)はjsrenderの関数ではありません

@section scripts{ 
    $.views.helpers({ 
     isMobile: function() { 
      return ("@IsMobileDevice" == "False" && (window.innerWidth < 1200)); 
     } 
    }); 
} 
<script type="text/x-jsrender"> 
    {{if ~isMobile()}} 
     <li class="show">Show</li> 
    {{/if}} 
</script> 

場合jsrender内部メソッドを呼び出しています。しかし、私はエラーになっています:ここ

view.hlp(...) is not a function.

いただきまし間違って?

答えて

1

あなたが剃刀コードを投稿するときに役立つのは難しいです。あなたの質問はクライアントサイドのJsRenderに関するものなので、ブラウザにロードされたコードを表示する必要があります。

isMobileヘルパーは機能していないようです。おそらく、ヘルパー定義コードがテンプレートレンダリングコードを実行する前にブラウザにロードされていないか、サーバコードに問題/バグがあり、isMobileヘルパーがブラウザに登録されていますが、関数ではありません。

1

私は同様の問題に直面しています。私のヘルパーメソッドで間違っているのは、ヘルパーメソッドを初期化する前に呼び出されているということです。

間違ったコード

<script type="text/x-jsrender"> 
{{if ~isMobile()}} 
    <li class="show">Show</li> 
{{/if}} 

$.views.helpers({ 
    isMobile: function() { 
     return ("@IsMobileDevice" == "False" && (window.innerWidth < 1200)); 
    } 
}); 
</script> 

右コード

<script type="text/x-jsrender"> 
$.views.helpers({ 
    isMobile: function() { 
     return ("@IsMobileDevice" == "False" && (window.innerWidth < 1200)); 
    } 
}); 
{{if ~isMobile()}} 
    <li class="show">Show</li> 
{{/if}} 
</script> 

・ホープ例下記参照、これは参考になる

関連する問題