在初始化变量时对变量应用监视

时间:2015-02-16 22:26:06

标签: javascript html angularjs

我需要在变量初始化时对变量应用以下$ watch,当前 angular 会尝试立即对其进行初始化。

我如何实现这一壮举?

$观看

$scope.$watch(function () {
        return $scope.character.level;
    }, function (newVal, oldVal) {
        if(newVal > oldVal) {
            resetSkillPoints();
        }
    });

$ scope.character.level在用户从下拉列表中选择一个字符时初始化。

1 个答案:

答案 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已经存在,那么你就不会覆盖它,如果它不存在你就初始化它。