我可以从自定义助手调用动作助手吗?

时间:2016-10-11 13:36:28

标签: ember.js htmlbars

我使用ember.js v1.13.0并拥有模板助手

import Ember from 'ember';

export default Ember.Handlebars.makeBoundHelper(function(data, recordType, options) {
    data = data || '';
    if (recordType == 12) {
        //not escaped
        escaped = data + "<a href=\"#\">it's some extra button</a>";
    } else {
        var escaped = Handlebars.Utils.escapeExpression(data);
        var matchURLs = /\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/gi;
        var replaceURL = function (str) {
            return "<a target=\"_blank\" href='" + (str.indexOf("://") === -1 ? "http://" : "") + str + "'>" + str + "</a>";
        }

        escaped = escaped.replace(matchURLs, replaceURL);
    }

    //nl2br
    escaped = escaped.replace(/\n/g, "<br />");


    return new Handlebars.SafeString(escaped);
});

我的目标是如果帮助者获得具有指定类型的记录,它将向记录文本的末尾添加按钮。但是当点击按钮时,它需要在我的控制器中调用一些动作。

我想在我的助手添加按钮时调用模板的action助手。

或许你可以建议另一个方法来添加新的按钮,在渲染过程中调用控制器中的动作。

0 个答案:

没有答案