我想让这个功能自动执行,但不能正常工作。
$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();
我的模板看起来像这样:
<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>
答案 0 :(得分:1)
首先,从Angular's documentation关于ng-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>
MyController.js
:
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.
}