gpt4 book ai didi

javascript - 来自嵌套自定义指令的 Angular 调用 Controller 函数

转载 作者:行者123 更新时间:2023-12-03 03:57:42 26 4
gpt4 key购买 nike

我需要一些帮助。我有一个 Controller ,其中包含一个名为“loadInformation()”的函数。在这个 Controller 中,我使用了一个服务,该服务使用自定义指令进行一些 DOM 操作。这些是指令:

第一个自定义指令:

angular.module('...').directive('ngInputString', function () {
return {
restrict: 'AE',
replace: 'true',
scope: {
savedInformation: '=',
type: '@',
values: '='
},
templateUrl: 'directives/templates/inputString.html',
link: function (scope, element, attrs) {
scope.filterOb = {ttype: scope.type};
}
}
});

HTML 文件:

<div>
<input ttype="{{type}}" type="text" placeholder="{{param.name}}" value='{{param.value}}'
class='clean-input form-control'/>
<ng-saved-information type="STRING" saved-information="savedInformation"></ng-saved-information>
</div>

嵌套自定义指令:

angular.module('semtrosApp').directive('ngSavedInformation', function    () {
return {
restrict: 'AE',
replace: 'true',
scope: {
savedInformation: '=',
type: '@'
},
template: '<ul><li ng-repeat="information in savedInformation | filter:filterOb">{{information.value}}<button type="button" ng-click="..?..">Use Information</button></li></ul>',
link: function (scope, elem, attrs) {
scope.filterOb = {ttype: scope.type};
}
}
});

当我不使用嵌套指令时,它与该代码段一起工作得很好:

elem.bind('click', function() {
scope.$apply(function() {
scope.loadInformation();
});
});

但是当它们嵌套时,第二个自定义指令只是在父指令的范围内查找。知道如何传递函数调用吗?

最佳答案

看起来 ngInputString 指令已经接收了一些数据并将其传递给 ngSavedInformation。为什么不让它也接受 loadInformation 回调并将其传递下来?

angular.module('...').directive('ngInputString', function () {
return {
scope: {
savedInformation: '=',
type: '@',
values: '=',
loadInformation: '&'
},
// etc
}
});

<ng-saved-information type="STRING" saved-information="savedInformation" load-information="loadInformation()"></ng-saved-information>

angular.module('semtrosApp').directive('ngSavedInformation', function () {
return {
scope: {
savedInformation: '=',
type: '@',
loadInformation: '&'
},
// etc
}
});

此外,您可以在模板中执行以下操作,而不是手动创建点击处理程序:

ng-click="loadInformation()"

关于javascript - 来自嵌套自定义指令的 Angular 调用 Controller 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862715/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com