我有一个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>
但是这不起作用,测试文本没有显示,按钮也没有显示警告。
有没有可以做到这一点?我试图创建一个小提琴示例,但由于某种原因,该指令不起作用。