Neo4j浏览器指南中使用下拉选择框自动填充Cypher查询
实现结论
该需求可以正常实现,你之前编写的下拉框代码不生效,核心是value-for绑定属性的放置位置错误,和控件本身类型无关。
失效原因
- Neo4j浏览器内置的
AdLibDataController只会识别直接携带value-for属性的表单元素,不会递归读取<option>这类子标签上的绑定属性,你把value-for写在option标签上,控制器完全无法建立表单控件和Cypher占位符的绑定关系 - 控制器的事件监听逻辑对标准表单控件通用,只要绑定关系配置正确,
<select>下拉选择框、单选按钮、复选框都可以正常触发Cypher文本的自动填充,不存在仅支持input输入框的限制
正确实现代码
<article class="guide" ng-controller="AdLibDataController"> <carousel class="deck container-fluid"> <slide> <!-- value-for属性直接绑定在select标签上,设置默认值为Person --> <select value-for="queryLang" class="form-control" value="Person"> <option value="Movie">Movie</option> <option value="Person">Person</option> </select> <pre class="code runnable ng-binding" mode="cypher"> MATCH (n:<span value-key="queryLang">Person</span>) RETURN n </pre> </slide> </carousel> </article>
配置注意事项
- 下拉框建议沿用内置的
form-control样式类,既可以和指南内其他表单元素样式保持统一,也能避免控制器的元素选择器漏识别目标控件 - 下拉选项
<option>标签仅需配置对应的value属性即可,不需要重复添加value-for绑定属性,选中项的值会自动同步到Cypher语句中对应value-key标记的占位位置 - 如果需要设置默认选中项,直接在
<select>根标签上配置value属性为对应选项的value值即可,逻辑和普通input输入框的默认值配置完全一致
内容的提问来源于stack exchange,提问作者Talisphere
相关产品推荐
相关产品推荐

