获取未定义的角度绑定的警告

时间:2015-10-19 17:27:20

标签: angularjs angularjs-scope

我正在使用Angular 1.4.6。这个问题很简单。

<button class="button fa fa-angle-left"
        ng-click="vm.dequeueSelected()"
        ng-disabled="!vm.rightGridHasSelection"></button>

好的,这里有一个按钮,它有两个绑定到我的控制器范围。现在,我的代码中有许多绑定,其中vm不包含绑定属性。在此示例中,我的控制器未在范围上设置rightGridHasSelection

Angular默默地忽略了这一点。我发现这种行为不受欢迎,而是希望发出警告。

如果绑定属性未定义,如何使Angular问题成为警告?可以对ngBind指令进行修饰吗?

修改

我知道测试是解决这个问题的正确方法。由于管理层设定的政策,这对我来说不是一个选择。我需要一些方法来检测我的视图中没有被控制器设置的所有绑定。必须有办法做到这一点。

1 个答案:

答案 0 :(得分:0)

如何为此创建自定义指令?类似的东西:

.directive('undefinedCheck', function () {
    return {
    restrict: 'A',
    link: function($scope, element, attrs, controller) {
      for(var i = 0; i<element[0].attributes.length;i++)
      {      
          var excluded = 'ng-pristine ng-valid'
          if (element[0].attributes[i].value
              && excluded !==element[0].attributes[i].value
              && !$scope[element[0].attributes[i].value])
          {
             alert(element[0].attributes[i].value+ " is undefined");
          }
        }
      }
    }
})

然后将其添加到您的元素中:

<button undefined-check class="button fa fa-angle-left"
    ng-click="vm.dequeueSelected()"
    ng-disabled="!vm.rightGridHasSelection"></button>

Working JSFiddle