我有一个rootScope
变量,其中包含产品类别,每个类别可能有也可能没有子项。这就是我分配rootScope
:
$rootScope.categoryList = $http.get('category').then((result) -> result.data)
这将要求(到Laravel路线)获取类别数据数组,数据的设计看起来像这样:
$data = array(
{category: Category, children: array('child1, child2, child3')},
{category: Category2, children: null},
{category: Category3, children: array('anotherchild1, anotherchild2')}
);
我生成数组的方式是:
public static function GetCategoryListings($ignore=false) {
$results = DB::table('category')->where('parent','-')->get();
$data = array();
if(!is_null($results)) {
$i = 0;
foreach($results as $result) {
$data[$i]['category'] = $result;
$child_result = DB::table('category')->where('parent',$result)->get();
if(!is_null($child_result)) {
foreach($child_result as $child) {
$data[$i]['children'][] = $child;
}
}
else
$data[$i]['children'] = null;
$i++;
}
}
return $data;
}
现在,我想将输出打印到Angular的视图中,我该怎么做?我做到了 像这样的东西:
<li ng-repeat="cat in categoryList">
{{cat.category}}
</li>
但它没有用,加上我无法输出孩子。有没有办法解决这个问题?
修改
通过在我的视图中更改为类似内容解决了我的问题:
<ul>
<li ng-repeat="cat in categoryList">
{{cat.category}}
<ul ng-if="cat.children != null">
<li ng-repeat="ch in cat.children">{{ch}}</li>
</ul>
</li>
</ul>
答案 0 :(得分:0)
这里可能会有很多不同的问题,但很可能就是这样。
Angular 1.2 no longer automatically unwraps promises in the templates。您必须将语法更改为以下内容:
$http.get('category').then((result) -> $rootScope.categoryList = result.data)
请注意,如果您依赖categoryList
作为承诺,这可能会破坏您应用中的其他内容。