2011-08-29 6 views
0

NVelocity로 녹아웃에 관한 튜토리얼을하려고합니다. 모든 것이 잘되었지만 템플릿에 관해서는 문제가 있습니다. this tutorial의 세 번째 단계에 도달하면 ${meal().mealName} 줄에 오류가 표시됩니다. 아무도 내게 설명 할 수 있을까요?NVelocity와 KnockoutJS를 결합 할 때의 ParseException

[ParseException: Encountered "().mealName}</td>\r\n   <td>" at line 50, column 23. 
Was expecting one of: 
    "}" ... 
    <DOT> ... 
    ] 
    NVelocity.Runtime.Parser.Parser.Parse(TextReader reader, String templateName) +257 
    NVelocity.Runtime.RuntimeInstance.Parse(TextReader reader, String templateName, Boolean dumpNamespace) +327 
    NVelocity.Runtime.RuntimeInstance.Parse(TextReader reader, String templateName) +71 
    NVelocity.Template.Process() +252 

[ParseErrorException: Encountered "().mealName}</td>\r\n   <td>" at line 50, column 23. 
Was expecting one of: 
    "}" ... 
    <DOT> ... 
    ] 
    NVelocity.Template.Process() +585 
    Castle.MonoRail.Framework.Views.NVelocity.CustomTemplate.Process() +266 
    Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.ProcessResourceWithSensibleExceptionWrapping(String resourceName, Resource resource) +67 

[ResourceProcessingException: Unable to process resource 'Home\index.vm': Encountered "().mealName}</td>\r\n   <td>" at line 50, column 23. 
Was expecting one of: 
    "}" ... 
    <DOT> ... 
    ] 
    Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.ProcessResourceWithSensibleExceptionWrapping(String resourceName, Resource resource) +117 
    Castle.MonoRail.Framework.Views.NVelocity.CustomResourceManager.GetResource(String resourceName, ResourceType resourceType, String encoding) +663 
    NVelocity.Runtime.RuntimeInstance.GetTemplate(String name, String encoding) +81 
    NVelocity.Runtime.RuntimeInstance.GetTemplate(String name) +104 
    NVelocity.App.VelocityEngine.GetTemplate(String name) +71 
    Castle.MonoRail.Framework.Views.NVelocity.NVelocityViewEngine.Process(String viewName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +593 
    Castle.MonoRail.Framework.Services.DefaultViewEngineManager.Process(String templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext) +262 
    Castle.MonoRail.Framework.Controller.ProcessView() +170 
    Castle.MonoRail.Framework.Controller.RunActionAndRenderView() +2529 
    Castle.MonoRail.Framework.Controller.Process(IEngineContext engineContext, IControllerContext context) +74 
    Castle.MonoRail.Framework.BaseHttpHandler.Process(HttpContext context) +175 

[MonoRailException: Error processing MonoRail request. Action index on controller Home] 
    Castle.MonoRail.Framework.BaseHttpHandler.Process(HttpContext context) +505 
    Castle.MonoRail.Framework.BaseHttpHandler.ProcessRequest(HttpContext context) +53 
    System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +100 
    System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +75 
+0

누가 다운받을 것입니까? 이것은 매우 명확하고 유효한 질문입니다. 당신이 그 질문이 무엇인지에 대해 이해하지 못하기 때문에 단지 다운 다운하지 마십시오. –

답변

1

$는 NVelocity과 충돌이 발생합니다 (기본적으로) jQuery를, 모두 특별한 상징 : 여기

는 스택 추적입니다. 그러나 이것은 jQuery.noConflict을 사용하여 jQuery에 대해 다시 정의 할 수 있습니다. 이것을 사용하면 jQuery의 $을 다른 기호로 설정할 수 있지만 100 % 확신 할 수는 없지만 이것이 jQuery 템플릿 (녹아웃이 사용하는 것)에도 적용됩니다.

또는 try using data-bind instead of ${ ... }

+0

감사합니다. 나는 당신의 충고에 따라 그것을 할 수 있습니다. – kekewong

관련 문제