javascript - 如何使用 jsRender 测试对象列表中的值
问题描述
我是 jsRender 的新手。在我的模型上,我有类似的东西:
public List<BasketOptions> Basket {get; set;}
例如,我知道在 jsRender 中我可以这样做:
{{if Basket.length }}
如果我在篮子里,它将返回真或假。
我正在尝试做并且需要一些帮助的是在我的 BasketOptions 对象上我有一个布尔“已选择”标志。我需要能够测试任何选定的标志是否为真。任何人都可以提供或指出如何做到这一点的一个很好的例子。我假设我需要调用一个 Javascript 函数,传递我的 Basket 对象并确定那里的值,但这就是我调用该 javascript 函数并返回值以供 jsRender 测试的方式。
所以我创建了一个javascript函数:
<script>
function GetBasketSelected(options) {
var optionSelected = options.find(function (option) {
return option.Selected;
});
return optionSelected;
}
</script>
并调用我拥有的脚本:
{{ if ~GetBasketSelected(Basket) }}
……
{{/if}}
我在 chrome 浏览器的 javascript 函数中设置了一个断点,它永远不会被命中。
所以我也试过以下没有运气:
{{ if :~GetBasketSelected(Basket) }}
……
{{/if}}
和
<script>
$.views.helpers({
GetBasketSelected: function(options) {
var optionSelected = options.find(function (option) {
return option.Selected;
});
return optionSelected;
}
});
</script>
解决方案
如果 Selected 是 Basket 的一个属性,你可以写
{{if Basket.Selected}}...{{/if}}
或者
{{if Basket.Selected===true}}...{{/if}}
但是如果 Selected 是一个 getter 函数,你需要
{{if Basket.Selected()}}...{{/if}}
您还可以调用辅助函数:
{{if ~testSelected(Basket)}}...{{/if}}
推荐阅读
- django - 部署 Heroku 后无法登录管理面板
- c - gcc内联汇编的nasm汇编代码版本是什么
- google-chrome - 为 chrome.tabCaptureAPI 指定 Tab 或 TabID?
- reactjs - 套接字连接成功后反应应用程序中未获取数据
- python - 如何为 keras MobileNetV2 预处理数据?
- algorithm - 检查总零集
- python - 如何正确解析python函数文档字符串?
- jquery - 来自 Flask send_file 的 Zip 文件无效
- javascript - 使用 Javascript 填写 iframe 中的输入字段
- html - 如何滚动到带有额外空格(固定标题)的 HTML id 标签?