如何定义在模板帮助器中也可以调用的Meteor方法?
我有两个文件:
文件:lib / test.js
Meteor.methods({
viewTest : function (str) {
return str;
}
});
文件:client / myView.js
Template.helloWorld.helpers({
txt : function () {
var str = Meteor.call('viewTest', 'Hello World.');
return str;
}
});
当我给“
str”一个普通的字符串时,一切正常。但是在这种情况下,我的模板没有任何价值。我为测试定义了该方法为普通函数的文件,并尝试调用该函数。我得到的错误是该功能不存在。因此,我认为Meteor会在不了解我为其定义的方法之前尝试渲染模板。但是我认为这有点不寻常-
是吗?
现在有一种新方法可以做到这一点(Meteor 0.9.3.1),它不会污染会话名称空间
Template.helloWorld.helpers({
txt: function () {
return Template.instance().myAsyncValue.get();
}
});
Template.helloWorld.created = function (){
var self = this;
self.myAsyncValue = new ReactiveVar("Waiting for response from server...");
Meteor.call('getAsyncValue', function (err, asyncValue) {
if (err)
console.log(err);
else
self.myAsyncValue.set(asyncValue);
});
}
在“创建的”回调中,创建一个ReactiveVariable的新实例(请参阅docs)并将其附加到模板实例。
然后,您调用您的方法,并在回调触发时,将返回的值附加到反应变量。
然后,您可以设置您的助手以返回反应性变量的值(该值现已附加到模板实例),并且在方法返回时它将重新运行。
但请注意,您必须添加react-var程序包才能正常工作
$ meteor add reactive-var
英文原文: http://emberjs.com/guides/templates/writing-helpers/ 有时,你想在程序里多次使用同一段 HTML 代码。这种情况下,你就可以自定义一个任何 Handlebars 模板都能调用的助手方法。 比如,你频繁地用一个拥有 class(译注:这个class为css中的class,非JavaScript中的类) 的 <span>来包裹特定的值。你
GitBook提供了一个内置过滤器和块来帮助您编写模板。 过滤器 value|default(default, [boolean]) 值如果未定义,则返回默认值,否则返回值。 如果boolean为true,任何JavaScript falsy值将返回默认值(false,"", 等) arr|sort(reverse, caseSens, attr) 使用JavaScript的arr.sort函数排
如何模拟服务类中使用的助手方法。我试着找,但找不到,你能指导我吗?如何模拟服务类中使用的助手方法。我试着找,但找不到,你能指导我吗? 服务类功能: public void checkExistance(字符串名称){ } 这是测试逻辑:@SpringBootTest@RunWith(MockitoJUnitRunner.class)公共类ApiUsageServiceTests{MongoOper
英文原文:http://emberjs.com/guides/templates/development-helpers/ 开发助手 Handlebars和Ember中定义了一些可以简化开发模板的助手。这些助手可以方便的将变量输出到浏览器的控制台中,或者在模板中激活调试。 日志 {{log}}助手可以方便的将当前渲染上下文中的变量、表达式输出到浏览器的控制台中: 1 {{log 'Name is
英文原文:http://emberjs.com/guides/templates/input-helpers/ Ember.js中的{{input}}和{{textarea}}助手是创建通用表单控件最简单的方法。{{input}}包裹了Ember.js内置的Ember.TextField和Ember.Checkbox视图,而{{textarea}}则包裹了Ember.TextArea视图。使用这些
英文原文: http://emberjs.com/guides/templates/rendering-with-helpers/ Ember.js提供了数个助手来协助你以不同的方式来渲染其他视图或模板 {{partial}} 助手 {{partial}}接收一个模板作为其参数,然后恰当地渲染这个模板 {{partial}}不改变上下文或作用域。它只是简单地在当前作用域下将指定的模板渲染出来。 1