DOJO JsonRest - 在单击后无法更改目标 URL
DOJO JsonRest - Unable to Alter Target URL After onClick
我有这个与FilteringSelect
:
var jsonStore = new JsonRest ({
target: "/ajax_script/autocomplete?term1=" + foo1 + "&term2=" + foo2
});
但是当我单击将term2
的值更改为foo3
的按钮时,target
始终保留在foo2
。
我可以在控制台中看到term2
的值确实在实例化之前和jsonStore
之后都更改为foo3
,所以我想知道 jsonStore 对象是否以某种方式缓存。
这是对target
的不当使用吗?有没有办法解决这个问题,或者也许是另一种选择?
编辑哈普雷特的答案
我确实尝试了这种将参数传递给 target
url 的方法,但我发现它与 FilteringSelect
不兼容。
我对FilteringSelect
的理解是它将searchAttr
属性值传递给 JsonRest URL,因此如果我searchAttr
是"term",则在用户输入中输入的数据(通过 FilteringSelect
(然后作为"term=someusrinput"传递。
就我而言,我需要传递进一步的参数,但是使用store.query()
会导致对JsonRest
URL的单独请求,该请求不包括来自FiteringSelect
的"术语"。store.query
请求包含"term1,term2,term3"参数,该参数失败,因为它不包含"term"(来自FilteringSelect
(,然后FilteringSelect
请求包含"term",失败,因为它不包含"term1,term2,term3"!
我需要将其他参数传递给 target
URL,该 URL 的工作原理是使用查询字符串修改target
URL - 传递FilteringSelect
术语并与查询字符串变量组合。
面临的问题是我无法使用通过onClick
修改的查询字符串的新参数通过JsonRest
"重新查询"。
这不是将参数附加到 URL 的正确方法。
您无需修改目标。
检查此示例
require(["dojo/store/JsonRest"], function(JsonRest) {
var store = new JsonRest({
target: "/ajax_script/autocomplete"
});
store.query({
term1: "foo1",
term2: "foo2",
}, {});
//URL - "/ajax_script/autocomplete?term1=foo1&term2=foo2
});
Dojo 会自动将你term1
term2
参数附加到每个get
、put
、add
和其他方法的父 url 中和
检查此示例的结果请求 URL
编辑
筛选选择 + JSON 存储
您尝试实现的目标无法使用 FilteringSelect。为此,您应该使用"选择"。
问题是过滤
*
选择会在您在 筛选选择文本框。例如:如果您键入k
它将变为k*
。当它被传递给 JsonRestStore 进行查询时,它不会 将其视为特殊输入,不会将其修改为智能 搜索,但将其用作您要与结果匹配的确切模式。var query = { valueToSearch: "k*" }
并且您的 URL 变为:example.com?valueToSearch=k*
"k*" == "kite" //false
而不是使用FileringSelect,您应该使用Select,然后你的查询将是
var query = {
valueToSearch: "kite"
}
并且您的 URL 变为:example.com?valueToSearch=kite
风筝 == 风筝//true,因为"风筝"将当前选择的值,用户未输入
我还创建了这个jsFiddle,您可以使用控制台的
检查这个 SO 的另一个问题
我可以建议你的可能解决方案
使用"选择">微件
修改 - JsonRestStore 根据您的要求。
使用 JSON 请求从远程服务器预加载所有数据,并将其添加到内存存储中,然后毫不费力地使用它。然后,您可以使用"筛选选择">,而不会出现任何问题。
- 更改跳转到URL操作SSRS 2008 R2的链接目标属性(rc:LinkTarget)
- 获取主机 URL + 目标 URL 的时间
- 删除浏览器底部链接的目标Url's页
- 如何在 Javascript onbeforeunload 事件中获取网页上链接的目标 URL
- 更改基于目标将 URL 参数追加到链接的方式
- 使用 Javascript 捕获值输入字段并将其放在目标 URL 中
- DOJO JsonRest - 在单击后无法更改目标 URL
- 在onclick处理程序中修改目标url
- 删除/避免将目标链接添加到URL
- WebBrowserControl在同一帧上加载目标URL
- cron作业中的Wget和Curl没有在目标URL中执行javascript
- dojo rest目标远程url
- 使用javascript将表单输入值插入href目标URL
- 如何使用get方法获取表单的完整目标url
- 浏览器如何显示链接的目标url
- Javascript窗口.打开在新窗口和同一窗口中打开目标URL
- 动态设置可编辑的目标URL
- Ajax请求成功,但无论如何都会继续到目标url
- Ember-获取转换的目标url
- 外部目标 (URL) 并展开面板/手风琴 Boostrap.不工作