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