【发布时间】:2017-05-09 17:07:26
【问题描述】:
<!DOCTYPE html>
<html data-ng-app="app">
<head>
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js"></script>
</head>
<body data-ng-controller="SimpleController">
<script>
var app = angular.module('app', []);
app.controller('SimpleController', SimpleController);
function SimpleController($scope) {
$scope.isNumberA = function(val) {
console.log('called');
if (val == 2) return true;
}
}
</script>
<input type="checkbox" ng-model="switcher" />
<h1 ng-if="isNumberA(10)">isNumber</h1>
</body>
</html>
在上面的代码中,isNumberA第一次调用是因为ng-if="isNumberA(10)",但我不知道为什么它会再次调用。检查控制台,它在浏览器中的 DOM 渲染上打印两次。之后,当我再次单击复选框时,它会调用该函数。为什么这个方法调用复选框单击?我没叫。这是双向绑定吗?而且,如果我删除<h1 ng-if="isNumberA(10)"></h1>,它也不会调用。这里发生了什么?
【问题讨论】:
标签: javascript angularjs