Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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
Angularjs 当';在进入'之前;_Angularjs_Ionic Framework_Angular Ui Router_State - Fatal编程技术网

Angularjs 当';在进入'之前;

Angularjs 当';在进入'之前;,angularjs,ionic-framework,angular-ui-router,state,Angularjs,Ionic Framework,Angular Ui Router,State,我在DoctorHomeCtrl中插入testResolve, 加载时,testResolve的值是正确的。 转到另一个页面并返回后,将启动函数,但testResolve的值不会更新 controller: 'DoctorHomeCtrl', resolve:{ testResolve:function ($q, $timeout) { var defer = $q.defer(); $timeout(function () {

我在
DoctorHomeCtrl
中插入
testResolve
, 加载时,testResolve的值是正确的。 转到另一个页面并返回后,将启动函数,但testResolve的值不会更新

    controller: 'DoctorHomeCtrl',
    resolve:{
      testResolve:function ($q, $timeout) {
        var defer = $q.defer();
        $timeout(function () {
          defer.resolve(new Date());
        }, 100);
        return defer.promise;
      }
    }
.....
.controller('DoctorHomeCtrl', [....,'testResolve',
function (....,testResolve) {
  $scope.$on('$ionicView.beforeEnter', function () {
    console.log('testResolve');
    console.log(testResolve);
  });
行为:

…转到另一个页面并返回后,函数被激发,但testResolve的值未更新

这是正确的。简单地说,爱奥尼亚做了一些自定义的,脱离用户界面的路由器性能优化。。。缓存。这意味着,它破坏了预期的UI路由器行为。。因为:

只要是视图init,并且其
控制器
被实例化。。。将触发
解析

但是在这里。。我们提供了缓存控制器。。。没有被重新初始化

解决方案?也许就像这里讨论的那样

避免缓存。。。或者只需在OneNet事件中解决问题…

行为:

…转到另一个页面并返回后,函数被激发,但testResolve的值未更新

这是正确的。简单地说,爱奥尼亚做了一些自定义的,脱离用户界面的路由器性能优化。。。缓存。这意味着,它破坏了预期的UI路由器行为。。因为:

只要是视图init,并且其
控制器
被实例化。。。将触发
解析

但是在这里。。我们提供了缓存控制器。。。没有被重新初始化

解决方案?也许就像这里讨论的那样


避免缓存。。。或者只在OneNet事件中执行resolve…

如果在testResolve()函数中放入console.log,它会在返回页面时触发吗?是的,它会触发并记录更新的值。PS:在ngRoute中,这是绝对正确的。如果在testResolve()函数中放入console.log,它会在返回页面时触发吗?是的,它触发并记录了更新的值。PS:在ngRoute中,它绝对正确。谢谢。而且“缓存控制器也触发解析”正确与否?嗯,缓存意味着。。它已经启动了。并且只有在初始化(创建)期间才计算resolve,以便将数据正确地传递到构造函数中。。。所以,缓存将永远不会重新触发。。。希望对你有所帮助。。。UI Router和Ionic很幸运,但解析也会在goback时触发。我认为不应该触发它。这取决于,这是否会触发缓存控制器,或者这是否会破坏旧视图。。。创造新的。也。。存在一个缓存大小,它会释放较旧的缓存项。。但总的来说。。在这种情况下,不要将resolve用于Ionic。它的缓存将是不可预测的。。。帮助?明白了。无论如何,我计划只在“已加载”中处理数据。感谢anwser。谢谢。而且“缓存控制器也触发解析”是否正确?好吧,缓存意味着。。它已经启动了。并且只有在初始化(创建)期间才计算resolve,以便将数据正确地传递到构造函数中。。。所以,缓存将永远不会重新触发。。。希望对你有所帮助。。。UI Router和Ionic很幸运,但解析也会在goback时触发。我认为不应该触发它。这取决于,这是否会触发缓存控制器,或者这是否会破坏旧视图。。。创造新的。也。。存在一个缓存大小,它会释放较旧的缓存项。。但总的来说。。在这种情况下,不要将resolve用于Ionic。它的缓存将是不可预测的。。。帮助?明白了。不管怎样,我计划只在“已加载”中处理数据。感谢anwser。