ngTagsInput - 设置 onTagAdding 回调

ngTagsInput - Set onTagAdding callback

我正在尝试使用 tagsInputConfig 提供程序为 onTagAdding 回调设置默认函数。没有成功。

tagsInputConfig.setDefaults('tagsInput', {
    placeholder: 'Search',
    maxTags: 10,
    minLength: 5,
    maxLength: 40,
    replaceSpacesWithDashes: false,
    onTagAdding: function (x,y,z) {
        debugger; // breakpoint is never called
    }
});

所有其他默认选项均已正确设置,回调除外。另一方面,当我将它配置为 属性:

<tags-input on-tag-adding="onTagAdding($tag)" ng-model="search"></tags-input>

有没有办法为这个回调设置默认函数?

根据我从 documentation (tags-input.js && configuration.js) 中得知的信息,onTagAdding 似乎不是您可以指定的默认值。

根据源代码,这里是可直接从源代码中获得的完整列表(PS:第四个参数中对象的键是默认值):

tagsInputConfig.load('tagsInput', $scope, $attrs, {
                template: [String, 'ngTagsInput/tag-item.html'],
                type: [String, 'text', validateType],
                placeholder: [String, 'Add a tag'],
                tabindex: [Number, null],
                removeTagSymbol: [String, String.fromCharCode(215)],
                replaceSpacesWithDashes: [Boolean, true],
                minLength: [Number, 3],
                maxLength: [Number, MAX_SAFE_INTEGER],
                addOnEnter: [Boolean, true],
                addOnSpace: [Boolean, false],
                addOnComma: [Boolean, true],
                addOnBlur: [Boolean, true],
                addOnPaste: [Boolean, false],
                pasteSplitPattern: [RegExp, /,/],
                allowedTagsPattern: [RegExp, /.+/],
                enableEditingLastTag: [Boolean, false],
                minTags: [Number, 0],
                maxTags: [Number, MAX_SAFE_INTEGER],
                displayProperty: [String, 'text'],
                keyProperty: [String, ''],
                allowLeftoverText: [Boolean, false],
                addFromAutocompleteOnly: [Boolean, false],
                spellcheck: [Boolean, true]
            });

tl;博士

不可以,您不能为 onTagAdding 回调设置默认函数,但在他们的 github!!!

上提交可能是一个很好的问题

您可以将作用域中的任何函数定义为回调,这是一个示例

# test.html
<div ng-controller="MyCtrl">
    <tags-input on-tag-adding="myFunction($tag)" ng-model="search"></tags-input>
</div>

并且在js文件中

angular.module('myModule').controller('MyCtrl', function($scope) {
    $scope.myFunction = function($tag) {
        console.log($tag);
        return false;
    };
});

希望对您有所帮助!