Javascript 使用AngularJS的动态URL
我有一个带有输入框和提交按钮的简单表单。这是一个字典服务,用户在输入框中输入一个单词,然后单击触发JQuery方法的按钮。该方法通过服务器端PHP调用(Merriam Webster的)API,并用返回的数据填充div(Javascript 使用AngularJS的动态URL,javascript,jquery,angularjs,url,Javascript,Jquery,Angularjs,Url,我有一个带有输入框和提交按钮的简单表单。这是一个字典服务,用户在输入框中输入一个单词,然后单击触发JQuery方法的按钮。该方法通过服务器端PHP调用(Merriam Webster的)API,并用返回的数据填充div(#意思是) 目前,我使用JQuery来实现这一点,这意味着div在没有页面刷新的情况下得到了更新,这很好。但是,这不会更改URL。我需要的是URL在每次执行新搜索时动态更改。例如,如果输入“cat”并点击Lookup,则URL应更改为: …/字典/猫 目前,它只是停留在: …/字
#意思是
)
目前,我使用JQuery来实现这一点,这意味着div在没有页面刷新的情况下得到了更新,这很好。但是,这不会更改URL。我需要的是URL在每次执行新搜索时动态更改。例如,如果输入“cat”并点击Lookup
,则URL应更改为:
…/字典/猫
目前,它只是停留在:
…/字典
如果我能够在不刷新页面的情况下复制URL更改,那么用户就可以直接为特定的意思添加书签,而无需每次都查找。我已经试着阅读了这份工作,但我真的很难通过。我当前的Angular实现是一个为不同视图(例如,/about,/contact等)提供不同HTML文档的实现。但是在这种特殊情况下,当查询被动态触发时,我怎么能拥有一个预先制作的文档呢?有什么建议吗
我不确定我对这个问题的理解是否充分。如有必要,请随时向我询问任何细节。我正在努力让大家明白这一点,但如果你看看像这样的网站的字典服务,你就会知道我在努力实现什么
我不需要你帮我写代码。我只需要一个大致的想法,如何去执行它,逻辑上,以及使用什么来考虑使用。如果不是Angular JS,我愿意尝试一个更适合的框架。你做得不对。不要尝试在搜索后更新URL。相反,搜索应该只是将您带到一个新的URL,并让逻辑从那里流动,使用路由变量 看起来你想添加到你的应用程序中。你可以 从文档中:
angular.module('ngRouteExample', ['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$routeProvider
.when('/Book/:bookId/ch/:chapterId', {
templateUrl: 'chapter.html',
controller: 'ChapterController'
});
在本例中,:bookId
和:chapterId
是从URL获取其值的变量。例如,使用/Book/MobyDick/ch/7
,bookId将是“MobyDick”,chapterId将是“7”
在您的情况下,when函数中的url可能如下所示:
when('/dictionary/:word', {
templateUrl: 'yourTemplate.html', // optional
controller: 'yourController' // optional
})
我尝试了类似的方法,但在“:”位上出现了错误。我将$scope变量命名为
term
以便使用。当('/dictionary/:term',{title:'+:term,controller:'dictController'})的含义甚至{term}
失败。@TheLearner如果您有。当('dictionary/:term')
时,您可以使用$routeParams.term
访问它。您还必须将$routeParams
注入控制器。