gpt4 book ai didi

function - cffunction 访问=

转载 作者:行者123 更新时间:2023-12-04 23:11:06 24 4
gpt4 key购买 nike

如果我使用 access="remote"将 cfselect 绑定(bind)到 cfc,那么我将失去拥有 Init() 构造函数的能力。

<cfselect name="CityID" bind="cfc:Components.City.View1({StateID})" value="CityID" display="CityName" bindonload="yes" />

当我实例化一个组件时,我习惯于将数据源名称传递给 Init 函数,如下所示:
<cfcomponent>
<cffunction name="Init">
<cfargument name="DS">

<cfset Variables.Instance.DS = arguments.DS>
<cfreturn This>
</cffunction>

<cffunction name="View1">
<cfset var qry = "">

<cfquery name="qry" datasource="#Variables.Instance.DS.Datasource#">
SELECT *
FROM Table
</cfquery>
<cfreturn qry>
</cffunction>
</cfcomponent>

最佳答案

菲利普,我通常在这种情况下做的是:

  • 在 onApplicationStart 中创建对象,并将其存储到 Application 范围内。这是您将使用数据源其他设置初始化的地方。
  • 创建一个远程代理 CFC,它基本上是真实事物的 stub ,并将您的选择字段绑定(bind)到该 CFC。

  • onApplicationStart:
    <cffunction name="onApplicationStart">
    <cfset application.dsn = "myDSN" />
    <cfset application.cityFinder = createObject("component", "Components.City").init(application.dsn) />
    </cffunction>

    和远程代理 CFC:
    <cfcomponent displayName="CityFinderProxy">
    <cffunction name="View1">
    <cfargument name="StateId" />
    <cfreturn application.cityFinder.View1(argumentCollection=arguments) />
    </cffunction>
    </cfcomponent>

    请注意,为简洁起见,我省略了很多最佳实践(即指定参数类型、必需等)......所以不要只是复制和粘贴这个例子。我只是想说明这个想法。

    关于function - cffunction 访问=,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/903037/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com