2016-12-14 4 views
0
var resultTemplate = "" + 
" <ul class='searchList'>" + 
"  <% _.each(paymentActions,function(paymentActivity){ %>" + 
"   <li><span class='amount visible-phone'>-<%= paymentActivity.grossAmount %></span>" + 
"   </li>" + 
"  <% }); %>" + 
" </ul>"; 


var template = _.template(resultTemplate,{paymentActions : jsonData}); 

오류 (코드 조각의 마지막 줄에)입니다 : -밑줄 JS 템플릿 던지는 참조 오류 변수가 정의되지 않은

Uncaught ReferenceError: paymentActions is not defined(…) 

내가 대신 수동 var resultTemplate 라인에 JSON 값을 넣으면 paymentActions 그것은 잘 작동합니다. 그래서 아래의 코드가 잘 실행되고 있습니다 : -

var resultTemplate = "" + 
" <ul class='searchList'>" + 
"  <% _.each([{grossAmount:100},{grossAmount:200}],function(paymentActivity){ %>" + 
"   <li><span class='amount visible-phone'>-<%= paymentActivity.grossAmount %></span>" + 
"   </li>" + 
"  <% }); %>" + 
" </ul>"; 

누구든지 디버깅을 도와 줄 수 있습니까?

답변

1

당신은 최근에 밑줄을 업그레이드 할 수는 _.template() 함수의 서명이 changed 1.7.0 이후이 있습니다

밑줄은 더 이상 초기 데이터 객체를 받아 들일 템플릿. _template은 항상 함수를 반환합니다.

var jsonData = [{grossAmount:100},{grossAmount:200}]; 
 

 
var resultTemplate = "" + 
 
" <ul class='searchList'>" + 
 
"  <% _.each(paymentActions,function(paymentActivity){ %>" + 
 
"   <li><span class='amount visible-phone'>-<%= paymentActivity.grossAmount %></span>" + 
 
"   </li>" + 
 
"  <% }); %>" + 
 
" </ul>"; 
 

 
var template = _.template(resultTemplate)({paymentActions : jsonData}); 
 

 
console.log(template);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script> 
 
<script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.3.3/backbone-min.js"></script>

차이의 존재 :

var template = _.template(resultTemplate)({paymentActions : jsonData}); 
다음

는 작업 버전입니다