【问题标题】:Access variable from controller in angular js without storing it into array从角度js中的控制器访问变量而不将其存储到数组中
【发布时间】:2014-12-01 08:03:09
【问题描述】:

假设我在 Angular JS 中有控制器 它有一个 for 循环 例如:

for(i=0;i<10;i++){
  var a = i;
  var b = i+1;
  // like this i have generate variable in for loop in controller 
}
This is my HTML Page 
<button ng-click="functionname"> Create table </button>
   <div>
     <tr>
       <td>
          i needs to bind variable here    
       </td>
     </tr>
   </div>
   </ol>

我需要创建在单行中具有变量 a 和变量 b 的类型 ahed 表, 所以总列将创建 10。(因为循环直到 10)

【问题讨论】:

    标签: html angularjs angularjs-ng-repeat


    【解决方案1】:

    我不认为你的要求是可能的。我不会在控制器中循环,而是在 html 中创建一个循环,然后在范围内调用工厂或函数:

    $scope.model.processVar = function(myVar){
        //proess myvar
        //return variable 
    };
    

    然后在html中:

    <button ng-click="functionname"> Create table </button>
       <div>
         <tr data-ng-repeat="myVar in [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]">
           <td>
              {{processVar(myVar)}}
           </td>
         </tr>
       </div>
       </ol>
    

    【讨论】:

    • 我正在使用生成一些信息的 API,我正在将该信息输入到变量中,所以我需要将其显示到表中,你能管理它吗​​(变量和表之间的数据绑定。
    • 秒可以存储到数据库中并使用 ng-repete 进行操作
    【解决方案2】:

    您可以使用函数 row.insertCell() 在表格中插入行。 我创建了一个 jsfiddle 来演示:http://jsfiddle.net/9fjvLq9c/

    html:

    <div ng-app>
        <div ng-controller="Ctrl">
            <button ng-click="functionname()"> Create table </button>
            <table id="myTable">
    
            </table>
        </div>
    </div>
    

    代码:

    function Ctrl($scope){
        var table = document.getElementById("myTable");
    
        $scope.functionname = function(){
            for(i=0;i<10;i++){
                var a = i;
                var b = i+1;
                var row = table.insertRow(0);
    
                // Insert new cells (<td> elements) at the 1st and 2nd position of the "new" <tr> element:
                var cell1 = row.insertCell(0);
                var cell2 = row.insertCell(1);
    
                // Add some text to the new cells:
                cell1.innerHTML = a;
                cell2.innerHTML = b;
            }
        }
    }
    

    您是否希望对表中的变量做任何具体的事情?

    【讨论】:

    • 控制器不应该是manipulate DOM
    • @Bpatil,您是否希望表格根据输入中的文本进行过滤(即仅显示 a 或 b 与输入匹配的行)?你能给我们一个你正在寻找的模型吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-15
    • 2012-02-21
    • 2017-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    • 2015-09-07
    相关资源
    最近更新 更多