AngularJS指令:检查属性是否可分配

时间:2015-05-12 11:27:02

标签: javascript angularjs angularjs-directive

我试图实现一个带有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 */;
            }
        }
    };
}]);

1 个答案:

答案 0 :(得分:1)

您可以使用$parse服务:

link: function(scope){
    var selectedGet = $parse(attrs.selected);
    var selectedSet = selectedGet.assign;

    // etc...

    if (selectedSet){
      selectedSet(scope.$parent, obj);
    }
}