小编Dom*_*rez的帖子

Meteor - 如何在帮助程序和模板事件之间传递数据?

我对Meteor有点新意,我遇到的问题是反应数据 - 特别是在我需要根据鼠标或键盘事件更改显示的数据的情况下.正常的js方式做这种事情似乎让我在流星上遇到麻烦,因为我改变的一切都会被重新渲染并不断重置.

所以,我想我会看到这是否可以使用Meteor的Deps对象,但是我无法理解它.这是我正在使用的代码:

(function(){

    var tenants = [];
    var selectedTenant = 0;

    var tenantsDep = new Deps.Dependency;

    Template.tenantsBlock.tenantsList = function()
    {
        tenants = [];
        var property = $properties.findOne({userId: Meteor.userId(), propertyId: Session.get('property')});
        var tenancies = _Utils.resolveTenancies(property, true, null, true);

        for(var i = 0; i < tenancies.length; i++)
        {
            if(tenancies[i].tenancyId == Session.get('tenancy'))
            {
                tenants = tenants.concat(tenancies[i].otherTenants, tenancies[i].primaryTenant);
            }
        }

        tenants[selectedTenant].selected = 'Selected';

        tenantsDep.changed();

        return tenants;
    };

    Template.tenantsBlock.onlyOneTenant = function()
    {
        tenantsDep.depend();

        return tenants.length > 1 ? '' : 'OneChild';
    };

    Template.tenantsBlock.phoneNumber …
Run Code Online (Sandbox Code Playgroud)

reactive-programming meteor

6
推荐指数
1
解决办法
1万
查看次数

使用滚动动画在站点中闪烁固定标题

所以我将一个网站放在一起,这将在滚动事件上触发一些css3动画.在编写滚动动画的大约一半时,我注意到页面的标题和其他位置上有很多闪烁:固定元素.

我能做些什么来减少这种眨眼?(理想情况下没有jQuery)

javascript css dom

6
推荐指数
1
解决办法
1万
查看次数

Sencha/Phonegap应用程序未在iPhone 5中填满全屏

我正在构建一个Sencha Touch应用程序并将其包装在PhoneGap(构建版)中供本机使用.

我最近的版本在iPhone 5上运行时,在屏幕的顶部和底部都有黑色的水平条纹.iPhone 4很好.这个版本与下载新版本之前运行良好的版本之间几乎没有任何区别 - 差异应该只影响用户帐户.

我正在使用Sencha CMD v4.0.2.67,Sencha Touch v2.3.1和PhoneGap v3.3.0来构建应用程序.

ios sencha-touch cordova iphone-5 phonegap-build

5
推荐指数
1
解决办法
3470
查看次数

在模板的上下文中从另一个帮助器调用一个帮助器(Meteor 0.9.4)

截至Meteor 0.9.4,定义模板.MyTemplate.MyHelperFunction()不再有效.

我们弃用了Template.someTemplate.myHelper = ...语法,转而使用Template.someTemplate.helpers(...).使用旧语法仍然有效,但它会向控制台输出弃用警告.

这对我来说似乎很好,因为它(至少)会保存一些错误输入和重复的文本.但是,我很快发现我构建Meteor应用程序的方式倾向于这个新版本已弃用的功能.在我的应用程序中,我一直使用旧语法定义助手/函数,然后从其他助手调用这些方法.我发现它帮助我保持代码清洁和一致.

例如,我可能有这样的控件:

//Common Method
Template.myTemplate.doCommonThing = function()
{
    /* Commonly used method is defined here */
}

//Other Methods
Template.myTemplate.otherThing1 = function()
{
    /* Do proprietary thing here */
    Template.myTemplate.doCommonThing();
}

Template.myTemplate.otherThing2 = function()
{
    /* Do proprietary thing here */
    Template.myTemplate.doCommonThing();
}
Run Code Online (Sandbox Code Playgroud)

但是Meteor建议的新方法似乎没有这个(这让我觉得我一直都错了).我的问题是,在模板的助手之间共享通用的,模板特定的逻辑的首选方法什么?

javascript templates meteor

5
推荐指数
1
解决办法
2979
查看次数

函数是重写变量.这怎么可能?

这个函数似乎正在重写'pages'变量的值,而我在这个变量的结尾处.

我已经尝试通过函数返回变量,将变量硬编码到函数中,以及其他一些东西,但这似乎应该可行.

有任何想法吗?

编辑:

输出应该是一个像这样格式化的对象数组{default: "Tax Return", safe: "taxreturn"}.功能,当第一次调用getPages('Both', 'overview', null),并getPages('Both', null, 'overview')做到这一点,但如果你把它更多的时候,它会报错,你会发现,"网页"变量现在是对象的数组.

var pages = [
    "Dashboard",
    "Overview",
    "Contacts",
    "Records",
    "Cash Flow",
    "Transactions",
    "Income",
    "Expenses",
    "Tax Return"
];

var getPages = function(format, includeOne, excludeOne)
{
    var pageStrings = pages;

    if(includeOne)
        for(var p = 0; p < pageStrings.length; p++)
            if(uriSafe(pageStrings[p]) == uriSafe(includeOne))
                pageStrings = [pageStrings[p]];

    if(excludeOne)
        for(var c = 0; c < pageStrings.length; c++)
            if(uriSafe(pageStrings[c]) == uriSafe(excludeOne))
                pageStrings.splice(c, 1);

    var outputArray = [];

    switch(format) …
Run Code Online (Sandbox Code Playgroud)

javascript arrays function

0
推荐指数
1
解决办法
329
查看次数