角度指令解析变量以发挥作用

Angular directive parsing variables to function

本文关键字:作用 变量 指令      更新时间:2023-09-26

我有以下指令

    feedBackModule.directive("responseCollection", ['deviceDetector', function (deviceDetector) {
    return {
        restrict: "E",
        templateUrl: 'js/modules/Feedback/directives/feedbackResponse/collection.html',
        scope: {
            collections: '=',
            completeCallback: '&'
        },
        link: function (scope, element, attr) {
            scope.endCollection = function () {
                scope.completeCallback(scope.collections);
            }
        }
    };
}]);

此指令(如您所见)采用一个位于以下控制器中的函数:

feedBackModule.controller('FeedbackResponseController', ['$state', 'Query', 'feedbackSkillService', 'feedbackFactory', 'feedbackResponseService', function ($state, Query, SkillFactory, feedbackFactory, feedbackResponseService) {
    var num_users = null;
    var user_index = 0;
    this.activeUser = null;
    this.final = false;
    this.feedback = feedbackResponseService.getFeedback();
    this.completeUser = function (collections) {
        this.activeUser.start = false;
        if(user_index < (num_users-1)){
            user_index++;
            this.activeUser = this.feedback.feedback_has_target_users[user_index];
        }
        else
        {
            this.final = true;
        }
    }
}]);

目录:

<response-collection complete-callback="frCTRL.completeUser()" collections="frCTRL.feedback.feedback_collections" ng-if="frCTRL.activeUser.start && !frCTRL.final"></response-collection>

该函数工作并正确调用,但是我使用它解析的变量始终undefined

所以我的问题是如何将变量/对象传递给这样的函数?

将指令参数绑定更改为=

completeCallback: '='

更改 HTML 以引用函数(不带 ()):

complete-callback="frCTRL.completeUser"

你会很高兴去的。