私はColdFusionバックエンドでAngularJSを取得しようとしていますが、いくつかの障害に直面しています。彼らの「ToDo」アプリhttp://angularjs.org/をCFArtGalleryデータベースで変更しています。AJAXを使用してColdFusionCFCをAngularアプリにリンクしようとしています。
以下は私のartists.cfcです:
<cfcomponent>
<cffunction name="getArtists" access="remote" >
<cfargument name="firstName" default="">
<cfargument name="lastName" default="">
<cfquery name="getArtists_sql" datasource="cfartgallery">
SELECT
firstname as text,
lastname as done
FROM artists
WHERE 0=0
<cfif firstName neq "">
AND ucase(firstname) like ucase('%#FIRSTNAME#%')
</cfif>
<cfif lastName neq "">
OR ucase(lastname) like ucase('%#LASTNAME#%')
</cfif>
</cfquery>
<cfreturn getArtists_sql>
</cffunction>
</cfcomponent>
次のコードでAngularJSを使用してCFCを呼び出します。
function TodoCtrl($scope, $http) {
$http.get('cfc/artists.cfc?method=getArtists&returnformat=json').
success(function (response) {
$scope.todos = data.DATA;
}).
error(function (data) {
$scope.todos = data;
});
}
返事が返ってくるのは知っています。以下は、Chromeの開発者ツールが返すJSON文字列です。
{
"COLUMNS":
["TEXT","DONE"],
"DATA":[
["Aiden","Donolan"],
["Austin","Weber"],
["Elicia","Kim"],
["Jeff","Baclawski"],
["Lori","Johnson"],
["Maxwell","Wilson"],
["Paul","Trani"],
["Raquel","Young"],
["Viata","Trenton"],
["Diane","Demo"],
["Anthony","Kunovic"],
["Ellery","Buntel"],
["Emma","Buntel"],
["Taylor Webb","Frazier"],
["Mike","Nimer"]
]}
これは、デモで使用されているAngularの表記とは異なります。
[
{text:'learn angular', done:true},
{text:'build an angular app', done:false}
]
誰かが私にこれを正しく機能させる方法について正しい方向を示すことができますか?理想的には、CFCをそのままにして、inを別のアプリケーションで再利用できるようにし、JSON操作をJavascriptの最後で実行する必要があるようにします。