0
我正在开发angularJS中的查询生成器。我正在定制angular-query-builder。AngularJS - 从动态创建的元素调用函数
代码结构是(只有相关的上下文代码示出)
base.html文件
<query-builder group="filter.group"></query-builder>
querybuilder.html
<select ng-options="t.name as t.name for t in fields" ng-model="rule.field" execute-change="setValidation()" class="form-control input-sm"><option value="">--Select Filter--</option></select>
<select style="margin-left: 5px" ng-options="c.name as c.name for c in conditions" ng-model="rule.condition" class="form-control input-sm"></select>
<input type="text" ng-model="rule.data" class="form-control input-sm condition-inp" />
controller.js
$scope.setValidation = function() {
console.log('Triggred')
}
directive.js
.directive('queryBuilder', ['$compile', function ($compile) {
return {
restrict: 'E',
scope: {
group: '='
},
templateUrl: 'querybuilder.html',
compile: function (element, attrs) {
var content, directive;
content = element.contents().remove();
return function (scope, element, attrs) {
element.on('change', function (e) {
scope.$apply(attrs.executeChange);
});
}
}
}
}]);
我要的是当在querybuilder.html
下提到的首次下降,我需要验证添加到相应的输入框中选择一个项目。 即,如果选择的项目是日期,那么输入框必须是日期选择器,如果它是电话号码,那么输入框应该是整数。
我试图做的是使用controller.js
中的setValidation
函数但是该函数没有被触发。