Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js 使用把手定义块辅助对象_Ember.js_Handlebars.js - Fatal编程技术网

Ember.js 使用把手定义块辅助对象

Ember.js 使用把手定义块辅助对象,ember.js,handlebars.js,Ember.js,Handlebars.js,我想定义一个块帮助器,将块中的文本放入标记中。我从一个例子开始,但是我的代码不起作用。要将作为此块帮助器的输出,我必须更改什么 app.js App = Ember.Application.create(); Handlebars.registerHelper('link', function(options) { var result = '<a href="http://www.example.com">' + options.fn(this) + '</a>'

我想定义一个块帮助器,将块中的文本放入
标记中。我从一个例子开始,但是我的代码不起作用。要将
作为此块帮助器的输出,我必须更改什么

app.js

App = Ember.Application.create();

Handlebars.registerHelper('link', function(options) {
  var result = '<a href="http://www.example.com">' + options.fn(this) + '</a>';
  return Handlebars.SafeString(result);
});
App=Ember.Application.create();
车把.注册表帮助器('link',功能(选项){
var结果=“”;
返回手柄。安全字符串(结果);
});
index.html

  <!DOCTYPE html>
  <html lang="en">
    <head>
      <title>Example</title>
    </head>
    <body>
      <script type="text/x-handlebars">
        <p>
        {{#link}}
        test
        {{/link}}
        </p>
      </script>

    </body>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript" src="js/handlebars.js"></script>
    <script type="text/javascript" src="js/ember.js"></script>
    <script type="text/javascript" src="js/app.js"></script>
  </html>

例子

{{{#link}
测试
{{/link}

只有几个细节(已编辑):

  • 在返回它之前,您只需要创建一个handlebar.SafeString的新实例。请检查@muistooshort's,并提供一个你正在努力实现的工作示例

  • 块帮助程序稍微复杂一点,当需要使用不同的上下文调用模板的一部分时使用。如果不是您的情况,您可以使用正则表达式的语法。(我将以下代码留在这里以供将来参考,尽管它与本例无关)

在app.js中声明帮助程序

Ember.Handlebars.registerHelper('link', function(value) {
  var result = '<a href="http://www.example.com">' + value + '</a>';
  return new Handlebars.SafeString(result);
});
Ember.handlebar.registerHelper('link',函数(值){
var结果=“”;
返回新把手。安全字符串(结果);
});
index.html中,将当前模板替换为:

<script type="text/x-handlebars">
  <p>
    {{link test}}
  </p>
</script>


{{链接测试}


希望这有帮助

我得到
测试
,我想得到
这对我没有帮助。“测试”只是一个例子。在我的应用程序中,有一段HTML代码(图像加文本),应该嵌入到标记中。我怎样才能解决这个问题?@wintermeyer:我想第一个子弹涵盖了你需要的一切:@muistooshort说JSFIDLE很棒,我想你应该在这里加上它作为答案!但是您的第一个“使用
”项目解决了这个问题,因此欢迎您从这里开始。