当前位置: 首页 > 面试题库 >

带有ng-repeat的离子(angularjs)离子滑动盒未更新

樊奇思
2023-03-14
问题内容

我正在ion-slide-box使用ng-repeat显示从远程服务器获取的图像。

    <ion-slide-box on-slide-changed="slideChanged(index)" auto-play="true" does-continue="true">
      <ion-slide ng-repeat="slide in files">
        <img ng-src="{{slide.filename}}" > 
      </ion-slide>
    </ion-slide-box>

和js:

  $scope.getFiles = function() {
     Files.query({  
        //some parameters

     }).$promise.then(function(data) {
        $scope.files = data;
  });

调用getFiles()(将触发此处未显示的服务)时,$
scope.files成功更新。但是DOM(加载到离子幻灯片盒中的图像)不会自动更新。如何刷新DOM?我已经尝试了timeout(什么都没发生)和$scope.$apply(抛出$
dispatch已经清除的错误。)

即使这是一个移动应用程序,在桌面浏览器中进行测试时,我仍可以调整浏览器的大小并自动显示图像。因此,我要么弄清楚如何保持此更新,要么找到更好的图像滑块/轮播使用。


问题答案:

您需要等待ng-repeat呈现,然后才能更新()幻灯片框,请使用以下指令:

angular.module('starter')
 .directive('repeatDone', function () {
   return function (scope, element, attrs) {
     if (scope.$last) { // all are rendered
       scope.$eval(attrs.repeatDone);
     }
   }
})

HTML:

<ion-slide-box>
  <ion-slide ng-repeat="day in week" repeat-done="repeatDone()" >

在您的控制器中

$scope.getFiles = function() {
 Files.query({  
    //some parameters

 }).$promise.then(function(data) {
    $scope.week = data;
});

$scope.repeatDone = function() {
  $ionicSlideBoxDelegate.update();
  //$ionicSlideBoxDelegate.slide($scope.week.length - 1, 1);
};


 类似资料:
  • 因此,我希望可以使用优先级来确保我的指令首先运行,并最终创建一个隔离范围,当运行时,它重用隔离范围,而不是创建一个原型上从父范围继承的范围。文档声明该指令在优先级下运行。尚不清楚是高优先级还是低优先级。当我在指令中使用优先级时,没有什么不同,所以我尝试了。但这使情况变得更糟:我的双向绑定变成,并且我的指令不显示任何内容。 我创造了一个小提琴来显示我的问题。我已经注释掉了指令中的设置。我有一个nam

  • 我有一个动态JSON,其中包含名称列表,它还包含子名称作为子集。如何使用angularJS ng重复在超文本标记语言UI中显示它 示例动态JSON是 注意:JSON是基于请求生成的。子数组是可选的,它可以包含长度“n”

  • 问题内容: 嗨,我有一个简单的ng-repeat-start和end用例,并且工作正常,当我想添加一个内部ng-repeat时出现了问题。这是我的代码 内部ng-repeat到td元素中不起作用,在检查html源代码时看到ngRepeat注​​释,但未创建td元素。 我的丑陋的解决方法(假设我知道该向量的大小)是: 问题答案: 从那时起,我不确定是否使用角度1.1.6,并且在1.1.5或1.0.7

  • 问题内容: 我正在寻找最简单的方法斑马条纹以下响应式弹性框表上的行。 换句话说,在此示例中,第2行和第4行是无限的,我不知道会有多少行,因为这是CMS系统中可重用的组件。 HTML不能更改,但是行和列的数量会经常更改。我很乐意为列而不是行设置限制。 有没有办法在纯CSS中做到这一点? 问题答案: 理想情况下,所需的选择器将定位属性中包含的偶数值。像这样: 基本上,该幻想选择器说: 使用 包含 ()

  • 问题内容: 我想使用父列表(foos)的索引作为子列表(foos.bars)中函数调用的参数。 我发现了有人建议使用$ parent。$ index的帖子,但不是的属性。 如何访问父级的索引? 问题答案: 我的示例代码是正确的,问题出在我的实际代码中。不过,我知道很难找到这样的例子,所以我在回答别人的情况。

  • 我在meteorjs中使用的是离子型(最初的一种,不是meterionic)。 当我使用带有a href的离子项目时,页面正在重新加载,这是我不想要的。 我尝试使用,并且通常在不重新加载的情况下更改状态。 如何在不重新加载整个单页应用程序的情况下更改离子项的行为以仅更改状态? <代码>