我需要在变量初始化时对变量应用以下$ watch,当前 angular 会尝试立即对其进行初始化。
我如何实现这一壮举?
$观看
$scope.$watch(function () {
return $scope.character.level;
}, function (newVal, oldVal) {
if(newVal > oldVal) {
resetSkillPoints();
}
});
$ scope.character.level在用户从下拉列表中选择一个字符时初始化。
答案 0 :(得分:2)
在初始化之前,您不必等待用户选择某些内容。 你应该自己初始化变量
$scope.character = $scope.character || {};
$scope.$watch(function () {
return $scope.character.level;
}, function (newVal, oldVal) {
if(newVal > oldVal) {
resetSkillPoints();
}
});
使用
$scope.character = $scope.character || {};
它说,make $ scope.character = $ scope.character但如果$ scope.character不存在则将其初始化为空对象{}。这样,如果$ scope.character已经存在,那么你就不会覆盖它,如果它不存在你就初始化它。