我试图实现一个带有attribute-flag selected
的AngularJS指令,该指令指示初始状态+任何当前值(如果它是可分配的)。
如何在AngularJS指令中实现验证,以便在设置值之前查看该属性是否可分配?
app.directive('customControl', [function () {
return {
restrict: 'E',
scope: {
selected: '=?', // optional, initial + current selected state;
},
templateUrl: 'views/directives/customControl.html',
link: function (scope, elem, attr) {
if (/* scope.selected is assignable */) {
scope.selected = /* some value */;
}
}
};
}]);
答案 0 :(得分:1)
您可以使用$parse
服务:
link: function(scope){
var selectedGet = $parse(attrs.selected);
var selectedSet = selectedGet.assign;
// etc...
if (selectedSet){
selectedSet(scope.$parent, obj);
}
}