首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将NVelocity与KnockoutJS结合使用时的ParseException

将NVelocity与KnockoutJS结合使用时的ParseException
EN

Stack Overflow用户
提问于 2011-08-29 10:06:36
回答 1查看 245关注 0票数 0

我正在尝试用NVelocity做一些关于击倒的教程。一切都很好,但当涉及到模板时就会出现问题。当我到达this tutorial的第三步时,它在${meal().mealName}行中给出了一个错误。有人能给我解释一下为什么会这样吗?

下面是堆栈跟踪:

代码语言:javascript
复制
[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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-29 10:50:52

$是用于NVelocity和jQuery的特殊符号(默认情况下),这会导致冲突。但是,可以使用jQuery.noConflict为jQuery重新定义这一点。使用它,你可以将jQuery的$设置为其他一些符号,尽管我不能100%确定这是否也适用于jQuery模板(这正是knockout所使用的)。

或者,您可能希望使用try using data-bind instead of ${ ... }

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7225427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档