Meteor 中的三元运算符
Ternary operators in Meteor
我正在使用 Meteoris 处理我的应用程序。我在表格中有这种情况。这是一个编辑视图,我只显示我在此处拥有的 17 个字段中的两个:
<label for="name" class="control-label">Name *</label>
<input type="text" id="name" value="{{profile.name}}" placeholder="Name" class="form-control">
<label for="acctType" class="control-label">Account Type</label>
<select id="acctType" placeholder="Name" class="form-control">
<option></option>
<option value="1" {{(profile.acctType == 1) ? 'selected="selected"' : ""}}>Free</option>
<option value="2" {{(profile.acctType == 2) ? 'selected="selected"' : ""}}>Paid</option>
</select>
我有一个名称字段和一个帐户类型字段。对于帐户类型,我将数值存储在 Mongo 数据库中。当我尝试检查这样的东西时,好的,我是一名 PHP 开发人员,在 PHP 中我这样做:
<label for="name" class="control-label">Name *</label>
<input type="text" id="name" value="<?php echo $profile_name; ?>" placeholder="Name" class="form-control">
<label for="acctType" class="control-label">Account Type</label>
<select id="acctType" placeholder="Name" class="form-control">
<option></option>
<option value="1"<?php echo ($profile_acctType == 1) ? ' selected="selected"' : ""; ?>>Free</option>
<option value="2"<?php echo ($profile_acctType == 2) ? ' selected="selected"' : ""; ?>>Paid</option>
</select>
我遇到了以下错误。当我在 "
和 {
之间没有给出任何 spaces 时,我得到:
While building the application:
client/views/users/profile.html:42: Expected space
... <option value="1"{{(profile.acctType ...
当我尝试给出 space 时,我得到了这个错误:
While building the application:
client/views/users/profile.html:42: Expected IDENTIFIER
... <option value="1" {{(profile.acctType ==...
您对解决此问题有何建议?
你不能在模板中使用 {{#if key==val}} 但你可以这样做来解决你的问题:
- 在会话中设置您的个人资料数据
Session.set("profile_acctType", 2)
,您可以在获取用户个人资料时在模板助手中指定它。
当 "yourTemplate" 被渲染时 select 值:
Template['yourTemplate'].rendered = function(){
$("#acctType").val(Session.get("profile_acctType"));
}
有了关于您的最终目标的更多信息,我可以做更多的事情eloquent,但这里有一个选择
Template.blah.helpers({
isAccountType: function (acctType) {
if (user.profile.acctType === acctType) return 'selected'
}
});
<option value="1" {{isAccountType 1}}>Free</option>
好的,谢谢你的回答。我所做的是:
Template.blah.helpers({
getSelected: function (acctType, currentValue) {
if (currentValue == acctType) return 'selected'
}
});
在表格中,我是这样做的:
<option value="1" {{getSelected profile.acctType "1"}}>Free</option>
<option value="2" {{getSelected profile.acctType "2"}}>Paid</option>
做了一个通用的助手。可以帮助某人。 :)
我正在使用 Meteoris 处理我的应用程序。我在表格中有这种情况。这是一个编辑视图,我只显示我在此处拥有的 17 个字段中的两个:
<label for="name" class="control-label">Name *</label>
<input type="text" id="name" value="{{profile.name}}" placeholder="Name" class="form-control">
<label for="acctType" class="control-label">Account Type</label>
<select id="acctType" placeholder="Name" class="form-control">
<option></option>
<option value="1" {{(profile.acctType == 1) ? 'selected="selected"' : ""}}>Free</option>
<option value="2" {{(profile.acctType == 2) ? 'selected="selected"' : ""}}>Paid</option>
</select>
我有一个名称字段和一个帐户类型字段。对于帐户类型,我将数值存储在 Mongo 数据库中。当我尝试检查这样的东西时,好的,我是一名 PHP 开发人员,在 PHP 中我这样做:
<label for="name" class="control-label">Name *</label>
<input type="text" id="name" value="<?php echo $profile_name; ?>" placeholder="Name" class="form-control">
<label for="acctType" class="control-label">Account Type</label>
<select id="acctType" placeholder="Name" class="form-control">
<option></option>
<option value="1"<?php echo ($profile_acctType == 1) ? ' selected="selected"' : ""; ?>>Free</option>
<option value="2"<?php echo ($profile_acctType == 2) ? ' selected="selected"' : ""; ?>>Paid</option>
</select>
我遇到了以下错误。当我在 "
和 {
之间没有给出任何 spaces 时,我得到:
While building the application:
client/views/users/profile.html:42: Expected space
... <option value="1"{{(profile.acctType ...
当我尝试给出 space 时,我得到了这个错误:
While building the application:
client/views/users/profile.html:42: Expected IDENTIFIER
... <option value="1" {{(profile.acctType ==...
您对解决此问题有何建议?
你不能在模板中使用 {{#if key==val}} 但你可以这样做来解决你的问题:
- 在会话中设置您的个人资料数据
Session.set("profile_acctType", 2)
,您可以在获取用户个人资料时在模板助手中指定它。 当 "yourTemplate" 被渲染时 select 值:
Template['yourTemplate'].rendered = function(){ $("#acctType").val(Session.get("profile_acctType")); }
有了关于您的最终目标的更多信息,我可以做更多的事情eloquent,但这里有一个选择
Template.blah.helpers({
isAccountType: function (acctType) {
if (user.profile.acctType === acctType) return 'selected'
}
});
<option value="1" {{isAccountType 1}}>Free</option>
好的,谢谢你的回答。我所做的是:
Template.blah.helpers({
getSelected: function (acctType, currentValue) {
if (currentValue == acctType) return 'selected'
}
});
在表格中,我是这样做的:
<option value="1" {{getSelected profile.acctType "1"}}>Free</option>
<option value="2" {{getSelected profile.acctType "2"}}>Paid</option>
做了一个通用的助手。可以帮助某人。 :)