AngularJS:我应该观察可选属性吗?

时间:2016-01-22 23:15:33

标签: angularjs angularjs-directive

假设我有一个带有可选属性my-button的指令disabled。人们可以使用这个指令,如:

<my-button>Button text</my-button>

<my-button disabled="variable">Button Text</my-button>

我应该观看获取disabled属性吗?这些用法可能会以某种方式从一个过渡到另一个吗?

<小时/> 为了回应JB Nizet对相关代码的请求,这里是指令函数的干净版本:

function ButtonDirective() {
    var directive = {
        link: link,
        restrict: 'E',
        scope: {
            click: '&',
            disabled: '=?',
        },

        template: '<a class="my-button" ' +
            'data-ng-class="{\'my-button-disabled\': disabled}" ' +
            'data-ng-click="disabled || click()" ng-transclude />',
        transclude: true
    };

    function link(scope) {
        if (typeof scope.disabled == 'undefined') scope.disabled = false;
    }

    return directive;
}

该指令创建一个样式为按钮的锚标记。它接受两个属性/参数:单击和禁用。后者是可选的。禁用时,点击事件应在单击时触发,否则单击事件应在单击时触发。

重申:我是否应该担心某人在事后添加,删除或修改已禁用的属性?如果是这样,我应该怎么做呢?

1 个答案:

答案 0 :(得分:0)

使用JB Nizet对事物进行散列后,他建议我不要担心HTML属性的变化。