无法访问ng-init值
我是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)
}());
尝试改变
var app=angular.module("Myapp",[]);
到
var app=angular.module("myApp",[]);
这里的工作fiddle。
编辑:
娜迦是正确的,它将与MyApp
正常工作。 Myapp
不起作用的原因是Angular处理指令名称的方式。在Javascript方面,Angular将您的名字转换为骆驼案例,它基本上意味着第一个字母是小写字母,并且变量中每个“word”的下一个字母都是大写。当这些值用HTML表示时,它们遵循HTML标准短划线,其中每个字母都是小写,单词之间用-
字符分隔。您也可以使用冒号(:
)或下划线(_
),但连字符是最常用的。
当您在您的Javascript中编写Myapp
或myapp
时,Angular将其归为HTML中的myapp
。但是,当您有MyApp
或myApp
时,它将变为HTML中的my-app
。
只要HTML和Javascript匹配,您就可以使用任何您喜欢的大小写。
它适用于任何情况下,这不是与myApp案件的问题 - http://codepen.io/nagasai/pen/OXdVzj检查一次 –
你能解释一下,为什么会发生? –
我们可以看到JS吗? –
为了进一步扩展Danny的回答:我们有0个线索是错误的,因为你没有向我们展示代码的最重要方面。你有一个JavaScript问题,但你没有显示我们的JavaScript。 –
当然,我要添加Js –