我试图用cf后端
来看一下AngularJS我有以下代码来提取一个名为getIndex的常规cfquery,它每个都会拉出五行列(firstName,lastName)
var theQuery = <cfoutput>#serializeJSON(getIndex,true)#</cfoutput>;
var theData = theQuery.DATA
function dataLooper($scope){
$scope.people = theData;
console.log($scope.people);
}
控制台日志生成
对象{FIRSTNAME = [5],LASTNAME = [5]}
我的HTML看起来像
<div ng-controller="dataLooper">
<div ng-repeat="person in people">
{{person}} - {{person.FIRSTNAME}}<br>
</div>
</div>
产生
["Yasteel","Kyleigh","Gary","Nick","Kerry-Leigh"] -
["Si","No","Ho","Ga","Gr"] -
显然我错过了一些东西,因为这根本不是我的预期。我猜这是因为AngularJS正在寻找一个Arrray而不是一个对象。我不确定,但我希望serializeJSON会给我一些类型的可用对象,而不需要额外的操作。有人能指出我正确的方向吗?
答案 0 :(得分:3)
ng-repeat可以处理数组或对象。对于对象,请使用“(key,value)”语法。
这不会解决您的问题,除非您重新格式化数据:
{ 'Yasteel':'Si', 'Kyleigh':'No', ... }
然后你可以这样做:
<div ng-repeat="(first,last) in people">
{{first}} - {{last}} <br>
</div>
答案 1 :(得分:1)
@Mark感谢您的帮助。我的问题是关于将CFQUERY转换为ANGULAR可以处理的问题。在Ben Nadel的article about Angular和article about converting a query to an array of structs的帮助下。我完成了它。
对于那些会发现这一点的CFers,可以得到Ben的queryToArray。以下是包含firstName,lastName,age。列的查询的示例。
<cfscript>
a = createObject('component','angular');
getQuery = a.getQuery();
QueryArray = a.queryToArray(getQuery);
</cfscript>
<script type="text/javascript">
var theQuery = <cfoutput>#serializeJSON(QueryArray)#</cfoutput>;
function dataLooper($scope){
$scope.people = theQuery;
}
</script>
<div ng-controller="dataLooper">
<div ng-repeat="person in people">
{{person.FIRSTNAME}} - {{person.LASTNAME}} - {{person.AGE}}<br>
</div>
</div>
我希望这可以帮助那些试图学习Angular的人!