Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS-计时器指令。与模态视图共享间隔_Javascript_Angularjs_Cordova_Ionic Framework_Ionic - Fatal编程技术网

Javascript AngularJS-计时器指令。与模态视图共享间隔

Javascript AngularJS-计时器指令。与模态视图共享间隔,javascript,angularjs,cordova,ionic-framework,ionic,Javascript,Angularjs,Cordova,Ionic Framework,Ionic,你好我正在进行一个Ionic/Cordova项目,我正在使用 计时器本身工作正常。代码如下: <timer ng-click="showLandscape()" interval="1000" countdown="timeType" autostart="false">{{mminutes}}:{{sseconds}}</timer> 在这里,我调用模式服务以在横向模式中显示模板。我正在与它共享$scope,以便访问它 我已经适应了。模式模板有其他计时器指令,并使用

你好我正在进行一个Ionic/Cordova项目,我正在使用

计时器本身工作正常。代码如下:

 <timer ng-click="showLandscape()" interval="1000" countdown="timeType" autostart="false">{{mminutes}}:{{sseconds}}</timer>
在这里,我调用模式服务以在横向模式中显示模板。我正在与它共享
$scope
,以便访问它

我已经适应了。模式模板有其他
计时器
指令,并使用$scope的分钟和秒数继续倒计时。但是,当模式显示(用户点击它)时,模式上的计时器正确地显示时间,但它有某种延迟

主窗口:计时器显示08:49。我敲了一下。模式显示为08:49,但冻结约2秒,然后显示08:48。如果我关闭模式(通过再次点击计时器-从而调用closeModal()-),主窗口的计时器是正确的并继续工作(因为它总是在后台工作)

我尝试了不同的方法来解决这个问题:

  • 创建其他控制器。这是没有用的,因为我需要分享更多的信息,除了计时器,我是重复了很多代码

  • 搜索更改同一控制器纵向或横向模式布局的方法。没有找到。我可以设置方向(通过插件),但模板总是一样的

  • 莫代尔很好用。它显示了所有其他东西,工作正常。不幸的是,如果它不能正确显示时间,则会使模式无效

目标:爱奥尼亚/Cordova项目上的Android/iOS

谢谢

修补它 检查此指令的代码后,最适合您的情况是从
指令中获取计时器值,因为目前此项目的维护人员不支持此操作

但是,这是绝对可能的,并且iv'e原始存储库可以修补
指令以支持它

结果是——
发生了什么变化?;原始指令的范围是孤立的。这意味着,
小时
分钟
,变量不会导出以供外部使用。添加的内容很小,例如

修补此问题后的唯一解决方法是,必须侦听
勾选事件并
摘要
范围,以便有界值将毫不延迟地反映其值

$scope.$on('timer-tick', function(event, args) {
  $timeout(angular.noop);
});
用法 要使用patched指令,请将其替换并包含在HTML中

<script src="https://rawgit.com/jossef/angular-timer/master/dist/angular-timer.js"></script>



在线演示-你能展示一下你的代码笔中定时器工作/挂起的例子吗?@RobSchmuecker无法将定时器添加到代码笔中。我有一大堆js错误。你应该能够包含js文件,让计时器工作。为什么不放弃角度计时,创建你自己的呢$超时(function(){$scope.nowtime=sometimeyouprovide},1000)并没有那么复杂。@Rienk是的,我在考虑使用其他方法。这个计时器指令给了我更多的问题,而不是解决方案,我的时间不多了……哇。太棒了!我接受这个。谢谢Jossef!伟大的仅供参考此更改,请随时更新即将发布的版本!好啊我对angularJS的东西都不熟悉。我的最后期限是这个星期二,我快发疯了。延迟使应用程序无效,客户不高兴lol。再次感谢。吸取的教训。
<script src="https://rawgit.com/jossef/angular-timer/master/dist/angular-timer.js"></script>