如何根据版本0.8.0转换TRELE TAG in METEOR 0.7.0.1

时间:2014-05-23 15:58:10

标签: meteor

我已将流星应用程序从0.7.0.1更新到0.8.0版本。每个更改都尝试但无法弄清楚,如何根据新版本更改三重标记。提到了以下链接并尝试这样做但仍然出错。

以下链接为:https://github.com/meteor/meteor/wiki/Using-Blaze

.html文件的代码是:基本上这是{{{done}}}部分。我试图根据上面的链接更改为{{>完成}}。然后得到错误""反应性HTML属性必须具有常量名称或由单个{{helper}}组成,提供名称和值的字典。此处不允许使用INCLUSION类型的模板标记。     ""

    <template name="subscribedKeyword"> 
        <div class="issue" > 
            <div class="issue-content">
                <h3>
                    {{category}} 
                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                    <input id='check' class="checktype" name="mark" type="checkbox"  value="1" {{{ done}}} />Get Notifications
                    <input type="hidden" name="mark" value="0" />
                </h3>
            </div>
        </div>
    </template>

相应的.js文件代码是:我认为没有必要更改此文件中的任何内容。根据上面的链接,只需要在html文件中进行更改。

    Template.subscribedKeyword.done = function () {
        // alert('inside done function');
        var subscribedUsersOfThisDomain=  Subscribed.findOne(this._id);
        var subscribedPersons =  subscribedUsersOfThisDomain.categorySubscribedUsers;
        // alert('before if block in done function');
        if(subscribedPersons && subscribedPersons.length)
        {
            var j;
            var ch='';

            // alert('before loop in done function');
            for(j= 0;j< subscribedPersons.length;j++)
            {
                //alert('j '+j);
                //alert('person '+person[j].username);
                if(subscribedPersons[j].username === Meteor.user().username)
                {   
                    ch ="checked";
                    // alert('value of ch that is set'+ch);
                    break; 
                }
            }
            if(ch=== 'checked')
            {
                // alert('while returning value in if block');
                return 'checked="checked"';
            }
            else        
            {
                // alert('while returning value in else block');
                return '';
            }

        }
        else
            return '';

    };   

请告诉我需要做些什么。提前致谢

1 个答案:

答案 0 :(得分:1)

我能看到的最简单的方法是:

<template name="subscribedKeyword"> 
    <div class="issue" > 
        <div class="issue-content">
            <h3>
                {{category}} 
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                <input id='check' class="checktype" name="mark" type="checkbox"  value="1" checked={{done}} />Get Notifications
                <input type="hidden" name="mark" value="0" />
            </h3>
        </div>
    </div>
</template>

Template.subscribedKeyword.done = function () {
    // alert('inside done function');
    var subscribedUsersOfThisDomain=  Subscribed.findOne(this._id);
    var subscribedPersons =  subscribedUsersOfThisDomain.categorySubscribedUsers;
    // alert('before if block in done function');
    if(subscribedPersons && subscribedPersons.length)
    {
        var j;
        var ch='';

        // alert('before loop in done function');
        for(j= 0;j< subscribedPersons.length;j++)
        {
            //alert('j '+j);
            //alert('person '+person[j].username);
            if(subscribedPersons[j].username === Meteor.user().username)
            {   
                ch ="checked";
                // alert('value of ch that is set'+ch);
                break; 
            }
        }
        if(ch=== 'checked')
        {
            // alert('while returning value in if block');
            return "checked";
        }
        else        
        {
            // alert('while returning value in else block');
            return null;
        }

    }
    else
        return null;

};   

根据https://github.com/meteor/meteor/wiki/Using-Blaze#conditional-attributes-with-no-value-eg-checked-selected