2016-08-12 48 views
1

我是Angular.js的新手。试图打印总行数,但不能访问变量(ct)。最后一个span标签没有显示{{ct}}的值。我错过了什么吗?无法访问ng-init值

<div id="test-area" ng-controller="mycontroller" > 
     <input type="number" step="1" max="5" min="1" ng-model="count" style="width:50px;"/> 

     <input type="number" step="1" max="4" min="0" ng-model="indexFrom" style="width:50px;"/> 
     <table class="tab1"> 
      <thead> 
      <th>Name</th> <th>Id</th> <th>Address</th> <th>Number</th> 
       <th>Date</th> 
      </thead> 
     <tr ng-repeat="user in users | limitTo:count:indexFrom " ng-init="parent=user;$parent.ct=$index"> 
     <td>{{user.name | uppercase}}</td> 
     <td> {{user.id | number }}</td> 
     <td>{{user.address |lowercase}}</td> 
      <td ng-bind="parent.marks[0].it |currency:'$'"> 
      </td> 
      <td class="ng-bind:user.bs | date:'dd/MM/yyyy'"> 

      </td> 
     </tr> 
     </table> 
      <br/> 
     <span class="gray">Total Row Number : {{ct}} | From {{indexFrom}} to {{indexFrom+count}} </span> 
     <br/> 



    </div> 

JS:

(function(){ 

    var app=angular.module("Myapp",[]); 
    var mycontrol=function($scope){ 
     $scope.users=users; 
     $scope.increment=increment; 
     $scope.change=change; 
     $scope.count=3; 
     $scope.indexFrom=0; 
    } 
    //marks increment 
    var increment=function(marks){ 
     marks.it+=1; 
    } 
    //id increment 
    var change=function(num){ 
     num.id=Number(num.id)+1; 
    } 
    var users=[{ 
      name:"Nihar", 
      id:"123", 
      address:"new town", 
      bs:new Date("April 30 1993"), 
      marks:[{it:90},{it:88},{it:97}] 
     },{ 
      name:"Nilanjan", 
      id:"194", 
      address:"baguiaty", 
      bs:new Date("October 20 1993"), 
      marks:[{it:94},{it:65},{it:82}] 
     },{ 
      name:"raktim", 
      id:"129", 
      address:"new town", 
      bs:new Date("November 20 1994"), 
      marks:[{it:97},{it:81},{it:79}] 
     },{ 
      name:"kaushik", 
      id:"126", 
      address:"Howrah", 
      bs:new Date("November 20 1994"), 
      marks:[{it:81},{it:89},{it:78}] 
     },{ 
      name:"Malhotra", 
      id:"287", 
      address:"dumDum", 
      bs:new Date("july 23 1994"), 
      marks:[{it:91},{it:68},{it:87}] 
     }]; 
    app.controller("mycontroller",mycontrol) 



    }()); 
+1

我们可以看到JS吗? –

+0

为了进一步扩展Danny的回答:我们有0个线索是错误的,因为你没有向我们展示代码的最重要方面。你有一个JavaScript问题,但你没有显示我们的JavaScript。 –

+0

当然,我要添加Js –

回答

1

尝试改变

var app=angular.module("Myapp",[]); 

var app=angular.module("myApp",[]); 

这里的工作fiddle

编辑:
娜迦是正确的,它将与MyApp正常工作。 Myapp不起作用的原因是Angular处理指令名称的方式。在Javascript方面,Angular将您的名字转换为骆驼案例,它基本上意味着第一个字母是小写字母,并且变量中每个“word”的下一个字母都是大写。当这些值用HTML表示时,它们遵循HTML标准短划线,其中每个字母都是小写,单词之间用-字符分隔。您也可以使用冒号(:)或下划线(_),但连字符是最常用的。

当您在您的Javascript中编写Myappmyapp时,Angular将其归为HTML中的myapp。但是,当您有MyAppmyApp时,它将变为HTML中的my-app

只要HTML和Javascript匹配,您就可以使用任何您喜欢的大小写。

+1

它适用于任何情况下,这不是与myApp案件的问题 - http://codepen.io/nagasai/pen/OXdVzj检查一次 –

+0

你能解释一下,为什么会发生? –