不通过AngularJS中的路径链接另一个页面

时间:2017-01-22 05:20:10

标签: javascript angularjs routing single-page-application

我使用$ location.path()添加数据@object,并通过提交表单:url.com/@object,但是当重新加载页面时 - 找不到页面:我不需要打开另一个页面,我只需要使用此参数@object重新加载url.com。怎么可能呢?

1 个答案:

答案 0 :(得分:0)

找不到您的网页的原因很可能是因为没有定义route与您的数据对象匹配path

如果您想从网址中传递数据,同时仍然匹配您的路线,可以通过以下几种方式进行操作。

  1. $routeParams
  2. https://docs.angularjs.org/api/ngRoute/service/$routeParams

    // Given:
    // URL: http://server.com/index.html#/Chapter/1/Section/2?search=moby
    // Route: /Chapter/:chapterId/Section/:sectionId
    //
    // Then
    $routeParams ==> {chapterId:'1', sectionId:'2', search:'moby'}
    
    1. $location.hash()
    2. https://docs.angularjs.org/api/ng/service/$location#hash

      // given URL http://example.com/#/some/path?foo=bar&baz=xoxo#hashValue
      var hash = $location.hash();
      // => "hashValue"
      
      1. $location.search()
      2. https://docs.angularjs.org/api/ng/service/$location#search

        // given URL http://example.com/#/some/path?foo=bar&baz=xoxo
        var searchObject = $location.search();
        // => {foo: 'bar', baz: 'xoxo'}
        
        // set foo to 'yipee'
        $location.search('foo', 'yipee');
        // $location.search() => {foo: 'yipee', baz: 'xoxo'}
        

        但是,使用Service来存储数据可能会更好。在AngularJS中,服务是Singleton,这意味着它们被实例化一次,非常适合存储state和/或data

        More info on how to use services.

        如果您有任何疑问,请与我们联系。