AngularJS为什么从函数返回bool与属性不一样?

noc*_*ier 2 javascript angularjs

我通常从函数返回true/false并将该函数传递给属性,但在这种情况下它不起作用.

例如:

将false传递给isEnabled的工作原理:

 $scope.myDropDownConfig = {
        allowMultiple: false,
        onSelecting: $scope.onSelect,
        isEnabled: false;
    };
Run Code Online (Sandbox Code Playgroud)

这不起作用:

 $scope.myDropDownConfig = {
        allowMultiple: false,
        onSelecting: $scope.onSelect,
        isEnabled: function () {
            return false;
        }
    };
Run Code Online (Sandbox Code Playgroud)

表达没有及时评估吗?我认为它与直接使用bool相同......没有错误,调试器不会捕获.有任何想法吗?我是否必须告诉角度来评估表​​达式?

Abh*_*dha 5

第一个属性是简单属性,第二个属性是函数.所以你需要用括号调用第二个()

  1. $scope.myDropDownConfig.isEnabled
  2. $scope.myDropDownConfig.isEnabled()

  • 如果他们将此对象传递给Angular,那仍然不会起作用.他们需要做`$ scope.myDropDownConfig.isEnabled = $ scope.myDropDownConfig.isEnabled()`. (2认同)