离子和角度 - 从控制器更新/刷新视图
Ionic and Angularjs - Update/Refresh View from Controller
通常
的开始,我对Ionic和Angularjs都是新手。我正在开发一个Ionic应用程序,它的核心非常简单。我们显示一个课程(会话(列表,该人单击图标以预订课程,然后图标更改以允许他们取消课程。我们还会更新卡片,以显示当天每个会话的剩余名额。我有代码可以在类中添加和删除人员,但我不确定如何从控制器内更新模板视图。控制器代码非常简单
// Check Person in to session.
$scope.addCheckIn = function(schedule){
var promise = sessionDataService.checkinSession(schedule.sessionID);
promise.then(function(data){
// Update (refresh) Schedule Details
// NOT SURE WHAT TO PUT HERE??
});
};
我尝试了许多不同的方法,包括
刷新$state并调用doRefresh,甚至调用原始控制器方法来再次填充卡片,但除非我在屏幕上的状态之间物理单击,否则视图不会更新
//$state.go('app.schedules', {}, {reload: true});
//$scope.doRefresh();
//getScheduleData(formatDate(selectedDate), formatDate(selectedDate), 'true');
我也看过$scope.apply和$scope.timeout,但我不确定这是否会让我离真正的解决方案更远。
更新后更新视图的正确方法是什么?应该在承诺之后,那么在控制器中,还是应该调用服务并更新所有内容。
任何关于最好的方法和正确的点的提示将不胜感激。
谢谢大家。
在你的承诺中,你应该将数据添加到范围中。
$scope.scheduledetails = data;
然后在模板中,您将能够使用 AngularJS 括号从控制器访问对象计划详细信息,以将数据绑定到 HTML。
<h1>{{scheduledetails.title}}</h1>
<p>Details : {{scheduledetails.details}}</p>
AngularJS应该负责刷新所需的内容,而无需调用任何方法或任何东西。
完整示例
控制器
$scope.addCheckIn = function(schedule){
var promise = sessionDataService.checkinSession(schedule.sessionID);
promise.then(function(data){
$scope.scheduledetails = data;
});
};
模板
<h1>{{scheduledetails.title}}</h1>
<p>Details : {{scheduledetails.details}}</p>
相关文章:
- 如何从相应的控制器动态更新标题和描述
- 在控制器之间切换,可以't更新视图
- AngularJS更新控制器变量并再次渲染视图
- 如何从另一个控制器更新控制器的ng重复模型
- 如何更新控制器angularjs中的.value
- 自动更新控制器Angular Metroet中的记录
- 角度文件上传指令不更新控制器模型
- UI-select2 内部指令未更新控制器模型
- AngularJS-通过服务从指令更新控制器数据(this.model语法)
- AngularJS通过服务自动更新控制器数据
- 更新控制器外部的角度模型
- Ionic AngularJS http服务不更新控制器
- AngularJS后台任务指令更新控制器
- 如何从jquery中更新控制器变量
- Ng-model不更新控制器中的值
- 更新控制器变量,并在指令的视图中使用它(angular 1.5)
- 为什么ng-model不更新控制器值select
- Ember:如何更新控制器中JSON对象数组中的单个字段
- Angular没有更新控制器中的$scope变量
- 角度/离子 - 型号不会更新控制器中的$scope