设置指令属性的可选属性的默认值

时间:2014-09-07 13:02:55

标签: angularjs angularjs-directive

我有一个table指令,这个指令在作用域上有一个需要配置对象的属性。可以配置此配置对象的属性,并且某些属性是可选的。我想要的是当没有设置可选属性时,我用默认值设置它。这是可能的,如果是的话,怎么样?我也想用eventhandlers来做这件事。如果没有设置,我想设置一个默认的事件处理程序。

到目前为止我尝试过的是这个。我的指示。

appname.directive("table" = function () {
    var self = this;

    self.setOptionalSettingsIfNotSet = function (config) {
        config.optional = config.optional || true;
    };

    self.configWatcher = function (config) {
        self.setOptionalSettingsIfNotSet(config);

        config.test = function(value){
            alert("test " + value);
        };
    };

    self.controller = function ($scope) {
        $scope.$watch("attrConfig", local.configWatcher);
    };

    return {
        restrict: "A",
        templateUrl: '...',
        scope: {
            attrConfig: "="
        },
        controller: self.controller,
    };
};

我尝试检查config属性是否有属性集,如果没有,我想自己设置它。我还尝试添加一个事件处理程序。我希望在我的html模板中以这样的方式使用属性和事件处理程序。

<button ng-click="config.test('value')">Test button</button>
<span ng-show="config.optional">Test text</span>

但是这不起作用,测试文本没有显示,按钮也没有显示警告。

有没有可以做到这一点?我试图创建一个小提琴示例,但由于某种原因,该指令不起作用。

0 个答案:

没有答案