【问题标题】:AngularJS component use N times dynamicallyAngularJS 组件动态使用 N 次
【发布时间】:2018-08-29 04:54:07
【问题描述】:

我是 AngularJS 的新手,我在我的模块中使用组件。 我有模块:

angular.module("reviewApp",[]).component("applicantDetails",{
   templateUrl : '../comp/Applicant_Details_Fields.html',
   controller : function($scope){...}
});

此时我可以像这样从 HTML 代码中使用我的组件

<applicant-details></applicant-details> 但现在我需要将其更改为更灵活。根据给定的 N 值,它必须在 HTML N 中添加该组件。 例如 N = 3;那么它必须在我的 html 代码中动态添加 3 次

<applicant-details></applicant-details>

我可以用 AngularJS 以简单的方式实现这个功能吗?我尝试了几种方法,并搜索了很多次,但我找不到如何做到这一点。 即使我尝试使用 JavaScript 添加该标签,但它只能理解没有内容的空标签。

【问题讨论】:

  • 您尝试过使用 ng-repeat 吗?
  • 在 ng-repeat 中我必须将我的组件添加到一个对象的数组中,然后在 ng-repeat 中处理它,但我无法将我的组件添加为一个对象。
  • @R.O.这就像一个for循环,只需让<div ng-repeat="i in [1,2,3]"><applicant-details /></div>重复3次,将[1,2,3]替换为动态数组,其长度可以改变

标签: angularjs components


【解决方案1】:

这是一个在 Angular js 中简单循环的例子

<div ng-app="myapp">
<div ng-controller="ctrlParent">
    <ul>
        <li ng-repeat="i in getNumber(myNumber) track by $index"><span>{{$index+1}}</span></li>
    </ul>

    <ul>
        <li ng-repeat="i in getNumber(myOtherNumber) track by $index"><span>{{$index+1}}</span></li>
    </ul>
</div>

var app = angular.module('myapp',[]);
app.controller('ctrlParent',function($scope){
    $scope.myNumber = 5;
    $scope.myOtherNumber = 10;
    $scope.getNumber = function(num) {
        return new Array(num);   
    }
});

检查输出:http://jsfiddle.net/sh0ber/cHQLH/

【讨论】:

  • ng-repeat 需要一个对象或数组。使用数字将不起作用。
  • 在这种情况下它显示正确,但是我的组件中有一个复选框,当我单击其中一个复选框时,它只检查第一个复选框。我怎样才能给他们唯一的 ID 以彼此分开?所以当我点击其中一个复选框时,它只会检查那个?
  • 你能在这里发布一些 HTML 代码吗?所以我可以做一些事情或改变它。
  • 我找到了答案,我只需要在我的组件中添加复选框 id="name_{{$id}}" 和 lable> 其中 $id 是 $rootScope 为每个子作用域提供的唯一作用域 ID。感谢您的帮助。
  • 我的声誉没有那么高,无法将其标记为有用,我试过了
猜你喜欢
  • 2017-06-08
  • 2016-12-18
  • 1970-01-01
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 2020-12-19
  • 2017-12-20
相关资源
最近更新 更多