在离子中我在初始化控制器之前使用Ui-Router的resolve
功能解析我的数据。截至目前,我没有$inject
我的EventService
进入控制器。 EventService
的{{1}}方法在初始化控制器之前解析数据。这一切都正常,但现在我正在尝试实现Ion Refresher。我可以轻松刷新控制器中的getEvents()
数组,使控制器本身膨胀,因为我必须$scope.events
$inject
进入控制器,这也意味着每个使用该控制器的控制器相同的数据必须包含处理刷新的逻辑。刷新控制器外部数据的最佳方法是什么?这是最好的方法吗?
事件状态定义和数据解析
EventService
事件控制器
.state('tab.events', {
url: '/events',
views: {
'tab-event': {
templateUrl: 'views/events.html',
controller: 'EventsController',
resolve: {
events: function (EventService) {
return EventService.getEvents(); //resolves data before ctrl initialized
}
}
}
}
})
膨胀事件控制器 - 示例
(function() {
'use strict'
angular
.module('app.events')
.controller('EventsController', EventsController);
EventsController.$inject = ['$scope','events'];
function EventsController ($scope,events) {
$scope.events = events;
}
}
)();
我可以用另一种方式刷新这些数据而不是膨胀控制器吗?
答案 0 :(得分:6)
调用$(document).ready ->
$('#post_submit_spinner').hide()
$(document).ready ->
$("#post_submit_before_spinner").click ->
$('#post_submit_spinner').show()
return
return
,它是:
$state.reload()
这将导致您的所有州重新进入"获取结果并重新初始化控制器。
答案 1 :(得分:3)
我希望硬刷新,这基本上是$ state.reload()所做的不是答案。我也有这个问题,宁愿能够调用一些方法来强制所有已解析的数据对象重新运行。重新加载会导致页面刷新,从而导致令人讨厌的UI工件。