2011-08-29 62 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

誰downvoted?這是一個非常明確和有效的問題。不要僅僅因爲你不明白問題的關鍵而下降。 –

回答

1

$既是NVelocity和jQuery的(默認),這將導致衝突的特殊符號。但是,通過使用jQuery.noConflict可以重新定義jQuery。使用這個,你可以將jQuery的$設置爲其他符號,儘管我不是100%確定這也適用於jQuery模板(這是淘汰賽使用的)。

或者,您可能想要try using data-bind instead of ${ ... }

+0

謝謝我設法與您的建議。 – kekewong

相關問題