我有一个非常简单的应用程序,我试图调用我的控制器的功能,如下所示
var app=angular.module('test',[])
app.controller('ctrl',function($scope){
$scope.func=function(){
alert('hi')
}
})
这就是我称之为
的方式 <body ng-app='test' >
<h1 ng-controller='ctrl'>{{func()}}</h1>
</body>
我面临的问题是我的功能被调用了两次。
阅读SO上的很多帖子,这个问题背后的原因主要与您的应用配置或路由配置有关,如果您为不同的视图配置了相同的控制器,或者如果您的应用初始化两次,那么您将面临此问题
但就我而言,我没有任何此类案件,但我仍然面临这个问题。
答案 0 :(得分:3)
使用{{func()}}
,您将在 func
功能上创建监视,每次摘要周期运行时,都会调用func
。
演示演示:
var app = angular.module('test', [])
app.controller('ctrl', function($scope) {
$scope.val = 100;
$scope.func = function() {
alert($scope.val)
};
$scope.add = function(a) {
return ++$scope.val;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.14/angular.min.js"></script>
<body ng-app='test'>
<h1 ng-controller='ctrl'>
{{func()}}
{{add()}}
</h1>
</body>
答案 1 :(得分:0)
func()的目的是什么?
是否可以绑定变量而不是直接调用函数?
var app=angular.module('test',[])
app.controller('ctrl',function($scope) {
function func() { // called in the future
$scope.funcValue = 'My Title';
}
})
HTML:
<body ng-app='test' >
<h1 ng-controller='ctrl'>{{ funcValue }}</h1>
</body>