如何从angularjs的外部将数据添加到ng-repeat范围中?

古腾(Goutham)

我遇到了AngularJSng-view的问题ng-repeat,我认为这与我处理AngularJS的方式有关scopeng-repeat用来显示数组中存在的项目的列表。ng-repeat scopeon之外的按钮将ng-click更新阵列。但是有些我无法使此功能正常工作。这是我的代码示例:

<!-- home.html partial -->
<h1>Home view</h1>
<div>
  <ul ng-repeat="p in posts.data">
    <li>{{p.title}}</li>
  </ul>
  <a href="#" ng-click="updatePosts(5)">More</a>
</div>

这是绑定到此部分文件的控制器:

var app = angular.module('plunker', ['ngRoute']);
app.config(function($routeProvider){
  $routeProvider
    .when('/', {
      controller: 'testController',
      templateUrl: 'home.html'
    })
    .otherwise({ redirectTo: '/' });
});

app.controller('testController', 
  [
    '$scope', 
    function ($scope) 
    {
      $scope.posts = {
        data : []
      };
      $scope.getPosts = function(count)
      {
        for(i =0; i<count; ++i)
        {
          $scope.posts.data.push({title : "Title-"+i})
        }
      }
      $scope.updatePosts = function(count)
      {
        var offset = $scope.posts.data.length;
        var data = [];
        for(i =offset; i<offset+count; ++i)
        {
          data.push({title : "Title-"+i});
        }
        $scope.posts.data = $scope.posts.data.concat(data)
      }
      $scope.getPosts(5);
    }
  ]
);

我想要的功能是当单击主页上的“更多”链接时,控制器应该获得很少的代码片段,并用更多的数据更新视图。例如,我希望单击“更多”后视图从(1)变为(2)。但是无论如何,我总是只得到(1)。


(1)

主视图

  • 标题-0
  • 标题1
  • 标题2
  • 标题3
  • 标题4

更多的

(2)

主视图

  • 标题-0
  • 标题1
  • 标题2
  • 标题3
  • 标题4
  • 标题5
  • 标题6
  • 标题7
  • 标题8
  • 标题9

更多的

我也有Plnkr上面的例子中设置这里

**更新**我尝试了不使用相同代码的情况,ng-view并且该代码完全按预期工作。因此,我可以确定我遇到的问题与的用法有关ng-view此处ng-view显示不使用Pnkr的示例

加尔帕克

您的代码(几乎)是正确的。

唯一的问题是<a href="#" ...会导致重定向到默认视图,从而重新实例化控制器(并将帖子数重置为5)。

在Angular中,如果您希望<a>元素样式化为<a>,但默认情况下在单击时不执行任何操作,请使用href=""

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

ng-repeat angularjs中的指令范围

ng-repeat中的数据绑定范围

ng-repeat中范围的动态名称

使用ng-if将额外的数据添加到ng-repeat结果中

AngularJS-范围不是ng-repeat的ng-click事件中预期的范围

AngularJS 对值进行分组并将它们添加到 ng-repeat 中

如何在子ng-repeat中获取父范围数组/ ng-repeat的索引

AngularJS中具有ng-repeat范围的指令隔离范围

从异步功能隐藏ng-repeat列表中的单个范围

如何将基于外部数据的变量添加到表格{tables}汇总表中

如何将对象从ng-repeat添加到控制器数组($ scope)中?

AngularJS 更新 ng-include 和 ng-repeat 中的 $ 范围

AngularJs ng-repeat 將顏色添加到受尊重列中單元格的最大值

从Angular中的ng-repeat中删除元素后如何更新范围?

如何将数据添加到列中特定范围的单元格

AngularJs-ng-repeat中具有相同名称的访问范围变量

带有点的 Angularjs 范围变量在 ng-repeat 中显示未定义

更新ng-repeat范围会删除ng-repeat中没有的意外项目

将数据添加到范围的底部

由于范围问题,ng-click无法在ng-repeat中触发

将类添加到指令中ng-repeat中的上一个项目

如何将列添加到数据框中?

Java:如何将数据添加到对象中?

如何将数据添加到 MutableLiveData 中的 List?

如何将数据添加到 Firebase 中的地图

如何将Nsmutabledictionary数据添加到Nsmutablearray中?

在范围中更新ng-repeat循环数组后,视图未更新

Angular Directive范围绑定在ng-repeat中不起作用

在 $http.get 中设置变量范围值后 Ng-repeat 不更新