我有一个匿名函数绑定到AngularJS中的$scope
。问题是该函数被调用了两次,因此“ Hello!” 被警告两次。
我在函数上没有明确定义的watch
。
我知道这与Angular 消化周期有某种联系,但是我无法理解。
angular.module("root", [])
.controller("index", function($scope) {
$scope.myObj = {};
$scope.myObj.text = function() {
alert("Hello!");
return "<b>Hello!</b>";
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.1.1/angular.min.js"></script>
<html>
<body ng-app="root">
<p ng-controller="index">
<span ng-bind-html-unsafe="myObj.text()"></span>
</p>
</body>
</html>
答案 0 :(得分:0)
一种快速且可能(肮脏)的解决方法是
angular.module("root", [])
.controller("index", function($scope) {
var initializeController = false;
$scope.myObj = {};
$scope.myObj.text = function() {
if (!initializeController) {
initializeController = true;
alert("Hello!");
return "<b>Hello!</b>";
}
}
});