【问题标题】:The specified CFC progress could not be found找不到指定的 CFC 进度
【发布时间】:2014-02-02 15:30:31
【问题描述】:

我有大约 1 天的学习时间,直到我需要能够使用 Coldfusion(欢迎提供任何详细教程)。

我在 ColdFusion10\cfusion\wwwroot 中有 2 个文件(t1.cfmprogress.cfc

t1.cfm:

<CFIF IsDefined("session.STATUS")>
<cfset StructDelete(Session, "Status") />
</CFIF>

<html>
<head>
    <title>progressbar</title>
    <script type="text/javascript">
        function startprogress(barname){
            ColdFusion.ProgressBar.show(barname);
            ColdFusion.ProgressBar.start(barname);
        }
        function onFin(){
            alert('Done');
        }
    </script>
</head>
<body>
    <cfform>
    <p>
        <cfinput type="button" name="starter" value="start" onclick="startprogress('du')" />
        <cfprogressbar name="du" duration="10000" interval="1000" width="200" oncomplete="onFin" />
    </p>
    <p>
        <cfinput type="button" name="starter1" value="start" onclick="startprogress('du1')" />
        <cfprogressbar name="du1" bind="cfc:progress.getstatus()" interval="1000" width="200" oncomplete="onFin" />
    </p>
    </cfform>
</body> 
</html>

progress.cfc:

component output="false"
{
    remote funktion getStatus(){
        str = StructNew();
        str.message = "blabla";
        if(NOT IsDefined("session.STATUS")){
            session.STATUS = 0.1;
            Sleep(200);
        }else if(session.STATUS LT 0.9){
            session.STATUS =session.STATUS +.1;
            Sleep(200);
        }else{
            str.message= "Done...";
            session.STATUS=1.0;
        }
        str.status =session.STATUS;
        return str;
    }
}

当我打开t1.cfm 时,它会说:

找不到指定的 CFC 进度。 CFC 的路径必须指定为完整路径,或当前模板的相对路径,不使用映射。

我想问题出在bind="cfc:progress.getstatus()",但我遵循的教程做了完全相同的事情,并且在那里工作。我做错了什么?

【问题讨论】:

  • 如果您是新手,请从更简单的开始。 Easycfm.com 有入门级教程。此外,当使用 cfc 时,请按此顺序执行操作。首先,让代码在 .cfm 文件中工作。然后让它在一个函数中工作,仍然在 .cfm 文件中。然后让它在 cfc 文件中工作,您可以使用诸如 createobject()、 之类的冷融合代码调用该文件。然后你就可以用 javascript/ajax 调用它了,这就是 bind 关键字的作用。
  • 查看 www.learncfinaweek.com。这是一些最优秀的冷融合开发人员教授的冷融合。它们避免了您在那里使用的 CFUI 标签,因为它们在现实世界的情况下并不是特别有用。 Jquery 和其他技术更擅长创建 UI/UX 的东西。

标签: coldfusion statusbar cfc


【解决方案1】:

认为你有一个错字:

 remote funktion getStatus(){

应该是:

 remote function getStatus(){

你在函数中放了一个 K,而不是它需要的 C。

【讨论】:

  • 谢谢。它仍然无法正常工作,但它做了一些事情:)
  • 您的函数返回一个具有两个值的对象 - 状态和消息 - 您可能需要以某种方式将它们映射到 cfprogressbar 吗?这些是它期望传递给它的变量名吗?
  • 我不这么认为。它在 if 语句中循环,而不是在 else if 中循环
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多