我有这样的观点:
<div ng-controller= "test" ng-init = "doit()">
<span>{{testval}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)
视图的控制器如下所示:
function test($scope){
var counter = 0;
$scope.doit = function(){
console.log('switched to view');
$scope.testval = counter++;
};
};
Run Code Online (Sandbox Code Playgroud)
我第一次切换到'test'控制的视图时,显示'0'.之后,它什么都没显示,但console.log继续触发.每次切换到视图并通过修改$ scope成功更新视图时,如何将其设置为执行'doit'?
谢谢
删除ng-init()并将对doit()的调用放入控制器:
function test($scope){
var counter = 0;
$scope.doit = function(){
console.log('switched to view');
$scope.testval = counter++;
};
$scope.doit();
};
Run Code Online (Sandbox Code Playgroud)
每次切换到此视图时,控制器代码都将执行.如果您希望计数器在视图更改之间保持不变,则必须将其放入服务或$ rootScope中(因为当您移动到另一个视图时,控制器及其$ scope将被销毁).
| 归档时间: |
|
| 查看次数: |
773 次 |
| 最近记录: |