用户反馈后禁用特定指令

时间:2015-01-15 08:40:15

标签: angularjs angularjs-directive angular-ui

我有以下问题。我使用angularjs完成了许多表单。现在,有几个国家/地区需要用户指定用户是否允许使用Cookie。现在,如果用户选择“没有cookie”,我的客户想要明确地停用某些指令(如注册指令)。我对Angular JS比较新,因此不知道如何以“漂亮”的方式做到这一点......

1 个答案:

答案 0 :(得分:0)

您需要决定如何实现这一点,并准确地扩展您的指令。

如果您的指令只是<select>元素的自定义实现,您只需在其上放置ng-disabled参数,并在其上添加参数即可。

因此,如果用户单击复选框并更改与其关联的模型的值(例如,$scope.allowCookies),您可以选择按如下方式实现它:

<customSelect ng-disabled="allowCookies">

根据customSelect指令的实现,您可以定义ng-disabled属性设置为true时要执行的操作。

另一个想法是为你的指令创建一个隔离范围,并将外部范围(或它的某个值)映射到内部范围,如下所示:

angular.module('exampleModule', [])
.controller('exampleController', ['$scope', function($scope) {
  $scope.allowCookies = true;
}])
.directive('custom-select', function() {
  return {
    scope: {
      disabled: '=allowCookies'
    }
  };
});

其中$scope.allowCookies映射到指令的隔离范围的disabled属性。您可以阅读有关此here.的更多信息,并在docs.

中获取所有指令选项的更深入参考