Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AngularJS的动态URL_Javascript_Jquery_Angularjs_Url - Fatal编程技术网

Javascript 使用AngularJS的动态URL

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方法的按钮。该方法通过服务器端PHP调用(Merriam Webster的)API,并用返回的数据填充div(
#意思是

目前,我使用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
注入控制器。