在Angularjs中自动执行函数
我希望这个函数自动执行,但不工作在Angularjs中自动执行函数,angularjs,Angularjs,我希望这个函数自动执行,但不工作 $scope.checkdate = function(){ $scope.checked = 0; $scope.unchecked = 0; for(var i = 0; i < $scope.inventories.length; i++) { if($scope.inventories[i].modified === $scope.time){ $scope.checked =
$scope.checkdate = function(){
$scope.checked = 0;
$scope.unchecked = 0;
for(var i = 0; i < $scope.inventories.length; i++) {
if($scope.inventories[i].modified === $scope.time){
$scope.checked = $scope.checked + 1;
}else if($scope.time2 !== $scope.time){
$scope.unchecked = $scope.unchecked + 1;
}
}
};
$scope.checkdate();
$scope.checkdate=function(){
$scope.checked=0;
$scope.unchecked=0;
对于(变量i=0;i<$scope.inventory.length;i++){
if($scope.inventory[i].modified==$scope.time){
$scope.checked=$scope.checked+1;
}else if($scope.time2!==$scope.time){
$scope.unchecked=$scope.unchecked+1;
}
}
};
$scope.checkdate();
我的模板如下所示:
<ul ng-init="checkdate()">
<li><input type="checkbox" /> Checked {{checked}}</li>
<li><input type="checkbox" /> Unchecked {{unchecked}}</li>
<li><input type="checkbox" /> All</li>
</ul>
- 选中{{Checked}}
- 未选中{Unchecked}
- 全部
首先,从aboutng init
:
ngInit的唯一适当用途是对ngRepeat的特殊属性进行别名
所以你不应该在你的例子中使用它
其次,您的init函数不应该附加到$scope
,因为不需要它。它应该是控制器的私有功能
第三,我们看不到控制器的定义。很可能您还没有创建一个,因此-Angular不会关心代码的其余部分
第五,如果您使用一个示例创建了一个JS Fiddle,您很快就会得到响应:)
无论如何,您的代码应该是这样的(样板)。我应该帮你
HTML模板:
<ul ng-controller="MyController">
<li><input type="checkbox" /> Checked {{checked}}</li>
<li><input type="checkbox" /> Unchecked {{unchecked}}</li>
<li><input type="checkbox" /> All</li>
</ul>
您可以删除ng init=“checkdate()”,因为它已经在控制器内部调用。它没有回答以下问题:与上述$scope关联的控制器是否正在实例化?您知道
$scope.inventory.length
大于0吗?虽然您的示例似乎有点不完整,但从表面上看,您正在尝试的操作应该是可行的。+1ng init
可能更适合命名为类似ng repeat init
或其他名称。似乎每个人都想误用它,尽管文档的用意很好:)是的,我广泛地使用它是为了不好的目的:D这部分是因为旧版本的文档没有正确地描述它。
function MyController() {
$scope.checked = 0;
$scope.unchecked = 0;
// Define what needs to be done during initialization below.
function init() {
// I haven't checked your code but there are some uninitialized variables in there like $scope.inventories....
for(var i = 0; i < $scope.inventories.length; i++) {
if ($scope.inventories[i].modified === $scope.time){
$scope.checked = $scope.checked + 1;
} else if ($scope.time2 !== $scope.time){
$scope.unchecked = $scope.unchecked + 1;
}
}
}
init(); // Call your private init function here.
}