我如何在Ember中输出字符串,同时仍然由把手解释它
How can I output a string in Ember while still having it interpreted by handlebars?
下面是一个简单的例子
MyApp.ApplicationController = Ember.Controller.extend({
content: "some @user",
parsedContent: function() {
return this.get("content").replace("@user", "<a {{action gotoUser 'user'}}>user</a>");
}.property("content")
});
将输出
some @user
some <a {{action gotoUser 'user'}}>user</a>
而不是将内容解释为Handlebars模板。我想我需要手动编译这个,但我不确定如何传递正确的上下文。
这是一个JSFiddle
我这里有一个工作示例。基本上,通过使视图的模板成为计算属性,你可以在将模板传递给Handlebars解析器之前修改它。
MyApp.LinkedUsersView = Ember.View.extend({
template: function() {
template = this.get("content").replace(/@('w+)/g, '{{view MyApp.UserLinkView username="$1"}}');
return Ember.Handlebars.compile(template);
}.property()
});
MyApp.UserLinkView = Ember.View.extend({
tagName: "span",
user: function() {
return MyApp.User.findByUsername(this.get('username'));
}.property(),
template: Ember.Handlebars.compile('<a {{action goToUser view.user href=true}}>@{{view.username}}</a>')
});
{{view MyApp.LinkedUsersView content="some @user with @another_user"}}
我不确定每次编译Handlebars模板的性能。
相关文章:
- 强制模板刷新ember.js
- Ember Data DS.Model's set函数不起作用
- Ember.js-接口状态应该存储在哪里
- 在ember/handlers中使用value和valueBinding有什么区别
- 当在Ember中点击一个项目时,我如何将一个活动类添加到项目列表中
- 你能解释一下这个阶乘函数是如何工作的吗?
- Uncaught TypeError:undefined不是函数-ember js
- 有没有一种方法可以列出Ember.Object的所有绑定
- 将ember对象的数组从ember组件传递到模板
- 你能解释一下为什么这个javascript不正确吗
- 尝试JSON.stringify Ember模型时Id丢失
- 手动触发ember.js中的属性更改
- 如何在ember单元测试中模拟_super()方法
- Ember.js(2.5.0)如何设置嵌套对象值
- 使用Ember-cli项目中的ES6库
- I'我得到这个.get()在ember中未定义
- 请解释Ember.$的用法
- 有人能解释ember.js的create函数吗
- 我对Ember.View的解释感到困惑
- 我如何在Ember中输出字符串,同时仍然由把手解释它