我做了很多解决方法,搜索和研究,但我无法想象如何实现我的目标。
- 问题:
- 我感到困惑:
- 我希望如何解决它:
<input type="text" name="newComission_dateFrom" ng-model="newCommission.from" notincluded=myFunction({{$index}})/>
和函数myFunction将迭代包含所有addedCommissionsDates的列表,并将其与所有日期范围进行比较,但additionalCommisionsDates [index]中包含的范围除外。
目标是可以在不使用隔离范围的情况下评估属性中的表达式。
我在隔离范围方面遇到了很多问题,我完成了对这篇文章的同意:
修改 我正在寻找如何实现ngRequire,因为ngRequire可以接受ng-require =“aFunction()”,我在我的指令中使用$ parsers达到了这个目标。 所以,我现在可以执行一个功能了! 我使用它做了一些进展,但是我希望在我的指令中执行该函数的结果,我希望达到这样的目的
rangesToEval = //我的函数或表达式的结果。
查看具有ngRepeat的内容,我无法确定返回此函数的值的范围
if(attrs.notincluded) {
var notIncludedValidator = function(value) {
ngModelCtrl.$setValidity('notincluded', !attrs.notincluded);
return value;
};
}
一切正常,因为我使用布尔值,但是,我想使用一个列表,该列表是在未包含
属性中执行expresion的结果//此输入是ng-repeat
的一部分<input type="text" ng-model="commission.date" ng-required="true" notincluded="filterDatesFn({{$index}})" />
我的控制器中有这个功能:
$scope.filterDatesFn = function(index) {
// in this list, we will add the dates of the defined commissions
if($scope.addedCommisionsDate) {
var listToEvalue= [];
for ( var i = 0; i < $scope.addedCommisionsDate.length; i++) {
if(i != index) {
listToEvalue.push($scope.addedCommisionsDate[i]);
}
}
return listToEvalue;
}
};
所以我的下一个目标是可以改为:
if(attrs.notincluded) {
var notIncludedValidator = function(value) {
--put the listToEvalue here and do my comparations and validate or invalidate the form in base of the comparation That I do here.
return value;
};
}
我将发布这项研究的进展。
如果有人可以帮助或分享任何想法,我将不胜感激
稍后再见!
答案 0 :(得分:1)
您是否尝试过像'&amp;'这样的功能你的指令中的参数?
像那样:App.directive('myDirective', function(){
return {
scope: {
myFc: '&'//if the name of parameter is the same in html if not use '&nameOfParameter'
},
link: function($scope, $el, $attr){
$el.bind('click', function(value){
$scope.myFc(value)
})
}
}
})