Javascript AngularJS中的服务定义
给定该服务(仅在服务器上获取json) 假设我在控制器中使用该服务:Javascript AngularJS中的服务定义,javascript,coffeescript,angularjs,Javascript,Coffeescript,Angularjs,给定该服务(仅在服务器上获取json) 假设我在控制器中使用该服务: ProductListController = ($scope,$rootScope,$http,$filter,DataTypeService)-> ### EN : manage product list display FR : gère l'affichage de la liste de produits ### $rootScope.types =
ProductListController = ($scope,$rootScope,$http,$filter,DataTypeService)->
###
EN : manage product list display
FR : gère l'affichage de la liste de produits
###
$rootScope.types = DataTypeService()
$rootScope.types被反复使用,现在问题很明显:
-当我呈现页面时,json还没有成功获取,所以我的转发器中没有显示任何内容
我如何设计我的应用程序,以便在服务器返回内容时模板会自动更新?谢谢
模板:
<span ng-repeat='type in types'>
<a href='javascript:void 0;' ng-click="addToSelectedTypes(type.id)" class='label trans' style="font-size: 15px" ng-class="getSelectedClass(type.selected)" >{{type.name | capitalize }}</a>
</span>
问题是您从服务返回的函数返回了
self.\u数据。返回整个self
对象(从DataTypeService
工厂返回的函数),并调整视图以使用类型。\u data
。然后标记应该自动更新
或者,您可以制作一些预加载程序,在没有可用数据时显示:
<div class="preloader" ng-show="!types._initialized"></div>
您的中继器将隐藏一段时间(并在正确加载数据时显示):
@camus返回self.\u data
的方式是一个问题,因为您只是返回空数组实例。一旦提取完成,它将用一个新的数组实例替换self.\u data
实例,但应用程序的其余部分将永远看不到该替换;应用程序的其余部分仍将引用旧的空数组实例。按照zbynour建议的方式进行操作可确保应用程序始终在查看类型中的最新值。_data
akaself._data
字段,即现在里面真正包含的内容。嘿,你们知道吗,你们都非常聪明,所以角度可以看到像这样的对象?不管怎么说,这很聪明,而且棱角分明。是的@Supr完美地描述了它。问题是你必须允许angular能够观看。
<div class="preloader" ng-show="!types._initialized"></div>
<div ng-show="types._initialized">
<span ng-repeat="type in types._data">
<a href="javascript:void 0;">{{type.name | capitalize }}</a>
</span>
</div>