我正在使用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
指令进行修饰吗?
修改
我知道测试是解决这个问题的正确方法。由于管理层设定的政策,这对我来说不是一个选择。我需要一些方法来检测我的视图中没有被控制器设置的所有绑定。必须有办法做到这一点。
答案 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>