Angular控制器中的操作顺序没有以正确的方式工作
sequence of operations in Angular controller not working in a right way
我有一个页面,用户在其中输入初始数据,然后单击"计算"。点击后,在进行计算时,应该会出现一个带有加载微调器的gif图像。一旦结果准备好,gif图像就会消失,结果就会显示在页面上。这是我正在使用的代码:
$scope.loading=false; //initially the img is invisible
$scope.calc=function(){
$scope.loading=true;//make the img visible
var result=MyService.calc(input_data); //processing data
$scope.result=result;
$scope.loading=false;//hide the img
}
HTML图像的定义如下:
<div class="span1">
<div ng-if="loading"><img ng-src="img/ajax-loader.gif"></div>
</div>
这是意料之中的事情。但事实上,它的工作原理如下:单击"计算"后,图像不会出现,经过一段时间的计算后,图像会显示并逃逸。
计算是在服务中进行的。
怎么了?我已经尝试在服务中创建一个$q.defer()
,它会以结果进行解析。然后在控制器中显示promise.then
函数内部的结果。但它不起作用。
为此使用$timeout
。模型在执行的过程中没有得到更新
JavaScript
$scope.calc=function(){
$scope.loading=true;//make the img visible
$timeout(function(){
var result=MyService.calc(input_data); //processing data
$scope.result=result;
$scope.loading=false;//hide the img
});
}
($timeout
必须像$scope
一样注入依赖项)
相关文章:
- 鼠标输入鼠标离开没有按照我认为应该的方式工作
- 针对移动设备的JQuery下拉列表没有以应有的方式工作
- 多行工具提示无法以编程方式工作
- 拼接没有按照我预期的方式工作
- 为什么需要 CDATA,而不是在任何地方都以相同的方式工作
- Javascript hide/show 切换在 Opera 中是双向的,但在其他浏览器中只能以一种方式工作
- 为什么这个正则表达式不能按照我想要的方式工作
- blur() 无法以编程方式工作 |但在从用户启动时会这样做
- jquery调整大小函数没有按照我期望的方式工作
- Javascript:逗号运算符,var,以及为什么它以这种方式工作
- @media查询以奇怪的方式工作
- 无法让 append() 以正确的方式工作
- AngularJS - CSS 动画只能以一种方式工作
- JavaScript parentnode.id 没有按照我预期的方式工作
- Packery - jquery show/hide有效,但不能以其他方式工作
- .filter() 中的函数没有按我想要的方式工作
- 如何实现 emit 以同步方式工作
- javascript对象声明没有按我希望的方式工作
- 我的查询获胜'因为一个剧本,它不能工作(它以错误的方式工作)!?但为什么呢?SESSIONS和PHP
- html5本地存储没有按我想要的方式工作